remp / laravel-sso
一个用于集成 REMP SSO 的 Laravel 扩展包
3.9.2
2023-10-06 08:47 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- illuminate/auth: ^v8.76.2
- illuminate/contracts: ^v8.76.2
- illuminate/http: ^v8.76.2
- illuminate/support: ^v8.76.2
- league/uri: ^6.7
- league/uri-components: ^2.4
README
安装
要将 SSO 连接器包含到项目中,请相应地更新您的 composer.json
文件
{ "minimum-stability": "dev", "prefer-stable": true, "repositories": [ { "type": "path", "url": "../Composer/laravel-sso" } ], "require": { // ... "remp/laravel-sso": "*" } }
在您的 config/app.php
中包含服务提供者
'providers' => [ // ... Remp\LaravelSso\Providers\SsoServiceProvider::class, // ... ];
Web 认证(JWT)
将新的中间件添加到您的 App\Http\Kernel
中的 $routeMiddleware
protected $routeMiddleware = [ // ... 'auth.jwt' => VerifyJwtToken::class, // ... ];
在 config/auth.php
中切换您的应用程序认证
'defaults' => [ 'guard' => 'jwt', 'passwords' => null, ], 'guards' => [ // ... 'jwt' => [ 'driver' => 'jwt', 'provider' => null, ], // ... ]
现在您可以使用 auth.jwt
中间件在 routes/web.php
中保护您的路由
Route::middleware('auth.jwt')->group(function () { // ... Route::get('ping', 'SystemController@ping')->name('ping'); Route::resource('foo', 'FooController'); Route::resource('bar', 'BarController'); // ... });
访问用户
您可以使用 Auth
门面来验证用户存在并访问其数据。
Auth::user() // returns instance of Remp\LaravelSso\Contracts\Jwt\User Auth::id() // returns current user ID Auth::check() // checks if user is logged in
API 认证(令牌)
当注册时,SsoServiceProvider
会覆盖默认的 token
认证并使用自己的保护器来验证调用者(Remp\LaravelSso\Contracts\Token\Guard
)。
API 认证配置
'guards' => [ // ... 'api' => [ 'driver' => 'token', 'provider' => null, ], // ... ],
要发送请求,您必须提供通过 REMP SSO 网页管理生成的有效 API 令牌(通过 Authorization: Bearer $token
)。如果未提供或令牌无效,中间件将为应用程序的异常处理器抛出 AuthenticationException
。
配置
您可以通过 Laravel 配置或环境变量来配置连接器。以下是所有可用配置选项的列表