coddin-web / oidc-client-laravel-wrapper
jumbojett的OpenID Connect客户端的Laravel包装器
1.5.0
2024-07-15 12:01 UTC
Requires
- php: >=8.1
- jumbojett/openid-connect-php: ^0.9.6
- laravel/framework: ^9.0
- lcobucci/jwt: ^4.1
Requires (Dev)
- dg/bypass-finals: ^1.3
- nunomaduro/larastan: ^2.1
- orchestra/testbench: ^7.5
- phpstan/phpstan: ^1.6
- phpstan/phpstan-phpunit: ^1.1
- phpstan/phpstan-strict-rules: ^1.2
- phpunit/phpunit: ^9.5
- rregeer/phpunit-coverage-check: ^0.3.1
- slevomat/coding-standard: ^7.2
- squizlabs/php_codesniffer: ^3.6
README
OpenID Connect客户端 - Laravel包装器
这是一个基于jumbojett的OpenID Connect客户端(jumbojett/openid-connect-php)的Laravel包装器。
此包将设置一个中间件组,可用于使用OpenID Connect验证保护Web路由和使用令牌验证保护API路由。
使此库正常工作需要以下几件事
- 您的IDP应支持OpenID Connect与OAuth 2(.1)
- 您的IDP已注册了您的客户端
- 实现此包的应用程序应与您的IDP具有相同的私钥
- 这是验证/解析JWT所需
当此包完成验证令牌为合法时,将触发一个事件供目标应用程序消费。此事件应执行例如 Auth::login($user),以便让Laravel完全了解此包已处理授权。
UserAuthorizedEvent将广播用户Uuid、用户名和用户电子邮件,您的应用程序应通过这些值之一(最好是UUID)了解用户。
注销(包括IDP)尚未完全实现。要本地执行它,只需要终止会话。
您可以使用laravel/passport设置IDP或使用例如与steverhoades/oauth2-openid-connect-server结合的Symfony应用程序自行设置。
或者更好的是使用我们的IDP包,它是一个可直接使用的Symfony bundle,具有清晰简洁的README以及完全实现了上述库。 OpenIDConnect IDP Symfony bundle