philippspeck/laravel-oidc-client

1.0.0 2024-01-02 12:58 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:27 UTC


README

一个用于将身份验证委托给OpenID提供商的Laravel包。

此包是基于cabinetoffice / oidc-client — Bitbucket的天堂级修改分支。

要求

  • PHP 8.0+
  • Laravel 8+
  • 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 中找到其他要设置的选项和它们的env变量。请注意,如果您使用OIDC自动发现,则某些选项不是必需的(如端点)!

如果您想,也可以发布配置文件(《config/oidc.php》)。

php artisan vendor:publish --provider="Maicol07\OIDCClient\OIDCServiceProvider"

如何使用

设置完毕后,您可以用对 route('oidc.login') 路由的调用替换您的登录系统。对于注销,使用 route('oidc.logout') 路由。

您可以通过设置以下环境变量来指定用户在成功认证/注销后要重定向到的路由/URL:OIDC_REDIRECT_PATH_AFTER_LOGINOIDC_REDIRECT_PATH_AFTER_LOGOUT

您可能想创建自己的 User 模型。如果是这样,则必须扩展 Maicol07\OIDCClient\User 以使认证工作。

检查您的 auth.providers.users.model 配置值:它必须设置为您的自定义 User 模型或设置为 Maicol07\OIDCClient\User

最初于2019年10月由内阁办公室数字发展部门开发。

自2021年10月起由 maicol07 维护