revenuefm / ssoguard
Laravel SSO 包
v0.0.11
2018-10-30 08:37 UTC
Requires
- php: ^7.1.3
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-28 04:25:39 UTC
README
此包受到 StackOverflow 上此问题启发的。
此包旨在帮助实现以下情况的用户
- 基于 Laravel 的身份验证服务器(中央用户目录,使用 laravel/passport 的 OAuth2)
- 基于 Laravel 或 Lumen 的资源服务器(Web 应用,没有用户表)
- 客户端 JS 应用(Nuxt、React...)
注意 值得注意的是,必须存在用户模型。您只需要更改 Auth 服务器所在数据库的连接。
工作流程是什么?
- 客户端的登录按钮将跳转到身份验证服务器,OAuth2 客户端经过用户授权并获取授权码后返回到客户端。
- 然后客户端使用请求将数据发送到资源服务器,同时向资源服务器提供凭证。
- 资源服务器使用此守卫授权请求,以便您可以保持您的 API 安全。
安装
通过 composer
$ composer require revenuefm/ssoguard
安装包后发布配置
php artisan vendor:publish --tag=ssoguard-config
打开配置文件,将路由添加到您在身份验证服务器上获取用户对象的 me
对象中。例如 https://your-domain.com/api/user
。
使用守卫
很简单,将配置文件中 auth
的 API 守卫驱动程序更改为
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'ssoguard', 'provider' => 'users', ], ],
之后,您可以使用标准的 API 中间件
Route::get('my/secure/api-url', 'MyController@index')->middleware('auth:api');
用户对象将可以从
$request->user()
作为标准对象使用。
如果有人想扩展此包并使其变得更好,请参与进来。
最好的!