autisid / laravel-oidc-client
Laravel OpenID Connect 客户端
Requires
- php: >=8.0
- autisid/oidc-client: ^1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-30 02:10:47 UTC
README
一个用于将身份验证委托给 OpenID 提供者的 Laravel 扩展包。
此包是 cabinetoffice/oidc-client 的神级修改版,原始版本可在 Bitbucket 上找到。
要求
- PHP 8.0+
- Laravel 8+
- Composer 2
安装
首先使用以下命令将此包添加到您的依赖项中:
composer require autisid/laravel-oidc-client
如果您已禁用自动发现,则需要将以下行添加到 config/app.php
中注册的服务提供者列表中:
Autisid\OIDCClient\OIDCServiceProvider::class
编辑您的 config/auth.php
文件,以使用 OpenID 作为您用户的身份验证方法。
'guards' => [ 'web' => [ 'driver' => 'oidc', ... ], ... ],
配置
您可以通过以下环境变量来调整包设置:
OIDC_CLIENT_ID
:您的应用程序的客户端 ID。这通常由您的 OIDC 提供商提供。OIDC_CLIENT_SECRET
:您的应用程序的客户端密钥。这通常由您的 OIDC 提供商提供。OIDC_PROVIDER_URL
:您的 OIDC 提供商的 URL。如果您的提供商支持 OIDC 自动发现,则使用此 URL。OIDC_PROVIDER_NAME
:这是您 OpenID 提供商的简短名称,它将仅出现在您的 OpenID 路由中。不要使用空格。默认为oidc
OIDC_CALLBACK_ROUTE_PATH
:附加到提供者名称的路径(带或不带开头的斜杠),以生成回调路由路径。默认为callback
示例(使用默认值):oidc/callback
(OIDC_PROVIDER_NAME
+/
+OIDC_CALLBACK_ROUTE_PATH
)OIDC_VERIFY
:在向服务器发送请求时验证 SSL。默认为true
。可选:如果您将此选项设置为false
,则可以将OIDC_CERT_PATH
设置为 SSL 证书路径。OIDC_HTTP_PROXY
:如果您有代理,请在此处设置。OIDC_SCOPES
:以逗号(,
)分隔的权限列表。默认为['openid']
。有效值的示例:openid,email
OIDC_AUTHORIZATION_ENDPOINT_QUERY_PARAMS
:要添加到授权端点的查询参数列表,编码为 JSON 对象。有效值的示例:{"response_type":"code"}
OIDC_DISABLE_STATE_MIDDLEWARE_FOR_POST_CALLBACK
:一个布尔值,用于禁用OIDCStateMiddleware
中间件的注册。
此中间件重新构建在callback
路由的POST
请求中的state
参数中持有的会话令牌。OIDC_SUB_COLUMN
:用于存储从 openid 到您的用户表的 uuid 的列名。
您可以在 config/oidc.php
中找到其他设置选项及其环境变量。请注意,如果您使用 OIDC 自动发现,则某些选项不是必需的(例如端点)!
如果您想发布配置文件(config/oidc.php
),也可以这样做。
php artisan vendor:publish --provider="Autisid\OIDCClient\OIDCServiceProvider"
如何使用
设置完成后,您可以用 route('oidc.login')
调用来替换您的登录系统。对于注销,使用 route('oidc.logout')
。
您可以通过以下环境变量来指定用户在成功认证/注销后要重定向到的路由/URL:OIDC_REDIRECT_PATH_AFTER_LOGIN
和 OIDC_REDIRECT_PATH_AFTER_LOGOUT
。
您可能想创建自己的 User
模型。如果是这样,则必须扩展 Autisid\OIDCClient\User
以启用认证。
检查您的 auth.providers.users.model
配置值:它必须设置为您的自定义 User
模型或 Autisid\OIDCClient\User
。
最初由 Cabinet Office Digital Development 在 2019 年 10 月开发。
自 2021 年 10 月由 maicol07 维护。
由 autisid 在 2023 年 2 月修改