gcs/oidc-client

1.0.0 2019-10-14 15:26 UTC

This package is auto-updated.

Last update: 2024-09-08 13:22:48 UTC


README

A Laravel 包,用于将身份验证委托给 OpenID 提供者。

如何安装

首先使用以下命令将此包添加到您的依赖项中

composer require gcs/oidc-client

然后将以下行添加到 config/app.php 中注册的服务提供者列表中

GCS\OIDCClient\OIDCServiceProvider::class

编辑您的 config/auth.php 文件以使用 OpenID 作为用户身份验证方法

'guards' => [
    'web' => [
        'driver' => 'oidc',
        ...
    ],
    ...
],

如何配置

运行以下命令以发布 config/oidc.php 配置文件

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

要配置的设置如下

  • client_id 这是 OpenID 提供者使用的客户端应用程序的 ID。您应通过名为 OIDC_CLIENT_ID 的环境变量设置此值。
  • client_secret 这是客户端应用程序的秘密代码,只有 OpenID 提供者知道。您应通过名为 OIDC_CLIENT_SECRET 的环境变量设置此值。
  • provider_url 这是 OpenID 提供者的基本 URL。您应通过名为 OIDC_PROVIDER_URL 的环境变量设置此值。
  • provider_name 这是您的 OpenID 提供者的简短名称,它将仅在您的 OpenID 路由中显示。不要使用空格。您应通过名为 OIDC_PROVIDER_NAME 的环境变量设置此值。
  • scopes 这是您的应用程序将从 OpenID 提供者请求的作用域列表。必须添加 openid 作用域。 添加任何附加作用域。

如何使用

设置完成后,您可以使用 route('oidc.signin') 路由替换您的登录系统。对于登出,请使用 route('oidc.signout') 路由。

您可能需要覆盖 OIDCController 中的 $redirectTo 变量,以指定用户在成功验证后要转到的路由。

另一个可能需要覆盖的重要方法是 OIDCUserProvider 中的 retrieveByInfo。此函数接收从 OpenID 提供者检索的用户属性数组,并返回已验证用户的用户模型。这是您可能希望将来自提供者的信息与您在应用程序数据库中保存的该用户信息合并的地方。

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