maicol07 / laravel-oidc-client
Requires
- php: >=8.3
- laravel/framework: ^11
- maicol07/oidc-client: ^4@rc
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- rector/rector: ^1
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-10 19:16:42 UTC
README
一个用于将身份验证委托给OpenID提供者的Laravel包。
此包是基于cabinetoffice / oidc-client — Bitbucket进行的天堂级修改分支。
要求
- PHP 8.3+
- Laravel 11+
- Composer 2
安装
首先,使用以下命令将此包添加到您的依赖项中
composer require maicol07/laravel-oidc-client
如果您已选择退出自动发现,则需要将以下行添加到config/app.php
中注册的服务提供者列表中
Maicol07\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
参数中持有的会话令牌。
您可以在config/oidc.php
中找到其他设置选项及其环境变量。请注意,如果使用OIDC自动发现,则某些选项不是必需的(例如端点)!
如果您想,还可以发布配置文件(config/oidc.php
)。
php artisan vendor:publish --provider="Maicol07\OIDCClient\OIDCServiceProvider"
如何使用
一旦设置完成,您可以用调用route('oidc.login')
路由来替换您的登录系统。对于注销,使用route('oidc.logout')
路由。
您可以通过设置以下环境变量来指定成功身份验证/注销后希望用户重定向到的路由/URL:OIDC_REDIRECT_PATH_AFTER_LOGIN
和OIDC_REDIRECT_PATH_AFTER_LOGOUT
。
您可能想创建自己的User
模型。如果是这样,那么您必须扩展Maicol07\OIDCClient\User
以使身份验证工作。
检查您的auth.providers.users.model
配置值:它必须设置为您的自定义User
模型或Maicol07\OIDCClient\User
。
最初由内阁办公室数字发展于2019年10月开发。
目前由maicol07自2021年10月起维护