remp/laravel-sso

一个用于集成 REMP SSO 的 Laravel 扩展包

3.9.2 2023-10-06 08:47 UTC

This package is auto-updated.

Last update: 2024-09-11 08:00:00 UTC


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 配置或环境变量来配置连接器。以下是所有可用配置选项的列表