minvws / openid-connect-php-laravel
Laravel 的 OpenID Connect 客户端
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.5
- jumbojett/openid-connect-php: ^1.0.0
- web-token/jwt-library: ^3.4
Requires (Dev)
- ext-openssl: *
- orchestra/testbench: ^6.0|^7.0|^8.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.8
- vimeo/psalm: ^5.8
This package is auto-updated.
Last update: 2024-09-15 14:20:31 UTC
README
此包是基于 jumbojett/OpenID-Connect-PHP 包的 Laravel OpenID Connect 实现。它提供了一个方便的方法将 OpenID Connect 集成到您的 Laravel 应用程序中。
要求
在使用 Laravel 的 OpenID Connect 包之前,请确保您的开发环境满足以下要求
- PHP 8.1 或更高版本:该包至少需要 PHP 版本 8.1。请确保您已正确安装和配置 PHP。
- Laravel:该包旨在与 Laravel 一起使用,因此您应该已经设置并运行了一个 Laravel 应用程序。
- Composer:Composer 是 PHP 的依赖管理器。您需要安装 Composer 来安装和管理该包及其依赖项。
如果您的环境满足这些要求,您可以继续安装和配置 OpenID Connect 包。
安装
您可以通过 Composer 包管理器安装此包
composer require minvws/openid-connect-php-laravel
对于 Laravel,发布配置文件
php artisan vendor:publish --provider="MinVWS\OpenIDConnect\OpenIDConnectServiceProvider"
此命令会将配置文件发布到您的 Laravel 应用程序的配置目录。配置文件名为 oidc.php
。
配置
要使用此包,您需要在 Laravel 应用程序的 .env 文件或通过环境变量中配置以下变量
OIDC_ISSUER
:OpenID Connect 提供者的发行者 URL。OIDC_CLIENT_ID
:OpenID Connect 提供者的客户端 ID。OIDC_CLIENT_SECRET
:如果需要,OpenID Connect 提供者的客户端密钥。OIDC_DECRYPTION_KEY_PATH
:只有当用户信息端点的响应被加密时才需要。这是 JWE 解密密钥的路径。OIDC_ADDITIONAL_SCOPES
:默认情况下,请求 openid 范围。如果需要额外的范围,您可以在此处指定它们,作为逗号分隔的列表。OIDC_CODE_CHALLENGE_METHOD
:用于证明密钥交换(PKCE)的代码挑战方法。默认值是 S256。
缓存配置
该包提供了一个可配置的缓存来缓存 OpenID Connect 配置。您可以使用以下配置选项自定义缓存的行为
OIDC_CONFIGURATION_CACHE_DRIVER
:用于缓存 OpenID Connect 配置的缓存存储。OIDC_CONFIGURATION_CACHE_TTL
:OpenID Connect 配置的缓存 TTL(生存时间)以秒为单位。
路由配置
该包提供了一个可配置的登录路由用于 OpenID Connect 身份验证。您可以使用以下配置选项自定义登录路由的行为
OIDC_LOGIN_ROUTE_ENABLED
:启用或禁用登录路由。将此值设置为 true 或 false。OIDC_LOGIN_ROUTE
:登录路由的 URL。OIDC_LOGIN_ROUTE_MIDDLEWARE
:在登录路由上运行的中间件。默认情况下,应用 web 中间件。OIDC_LOGIN_ROUTE_PREFIX
:登录路由的前缀。
使用方法
配置必要的变量后,您可以访问默认可用的 /oidc/login
路由。
登录路由
该包提供了一个预配置的登录路由用于 OpenID Connect 身份验证。登录路由是默认可用的,可通过 /oidc/login
访问。
要启用或禁用登录路由,您可以在环境配置中更新OIDC_LOGIN_ROUTE_ENABLED
变量。将其设置为true以启用登录路由或设置为false以禁用它。要更改登录路由的URL,您可以在环境配置中更新OIDC_LOGIN_ROUTE
变量。默认值是/oidc/login
。
自定义登录响应处理器
该包包含一个默认的LoginResponseHandler类,它返回包含用户信息的JSON响应。但是,您可以根据项目需求自定义登录响应。
要绑定您自己的LoginResponseHandlerInterface实现,您可以在Laravel应用程序中使用以下代码
$this->app->bind(LoginResponseHandlerInterface::class, YourCustomLoginResponse::class);
将YourCustomLoginResponse
替换为您自定义实现的类名。通过绑定自己的响应类,您可以定义所需的登录响应行为和格式。
请确保在您的自定义响应处理器类中实现LoginResponseHandlerInterface
,以确保兼容性。
禁用TLS证书验证
默认情况下,该包在向颁发者发出请求时验证TLS证书。如果您想禁用TLS证书验证,您可以在环境配置中将OIDC_TLS_VERIFY
变量设置为false。
贡献
如果您遇到任何问题或有改进建议,请随时在此包的GitHub仓库上打开一个问题或提交一个拉取请求。
许可证
此包是开源的,并按照欧洲联盟公共许可证第1.2版发布。您可以根据许可证条款自由使用、修改和分发此包。