girift/apitwist-sso-laravel-client

这是与ApiTwist SSO集成的客户端。

0.2.1 2024-06-26 12:21 UTC

README

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

ApiTwist SSO的客户端集成。

安装

使用composer安装此包

composer require girift/apitwist-sso-laravel-client

将SSO配置添加到您的.env文件中

SSO_CLIENT_ID=client_id
SSO_CLIENT_SECRET=client_secret
SSO_DOMAIN='https://sso.apitwist.com'

将HasSsoTokens特质添加到您的User模型中

// ...
use Girift\SSO\Traits\HasSsoTokens;

class User extends Authenticatable
{
    use HasSsoTokens;
    // ...
}

将中间件添加到您的app/Http/Kernel.php文件中的$routeMiddleware数组

protected $routeMiddleware = [
    // ...
    'sso.auth' => \Girift\SSO\Http\Middleware\SsoAuthenticate::class,
    'sso.api' => \Girift\SSO\Http\Middleware\SsoApiAuthenticate::class,
];

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="sso-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="sso-config"

这是发布后的配置文件内容

return [
    'client_id' => env('SSO_CLIENT_ID'),
    'client_secret' => env('SSO_CLIENT_SECRET'),
    'redirect_url' => config('app.url') . '/sso/callback',
    'sso_domain' => env('SSO_DOMAIN', 'https://sso.apitwist.com'),
    'authorize_url' => config('sso.sso_domain').'/oauth/authorize',
    'api_url' => config('sso.sso_domain').'/oauth/token',
    'logout_url' => config('sso.sso_domain'). '/logout',
    'get_user_url' => config('sso.sso_domain').  '/api/user',
];

使用方法

routes/web.php文件中,使用sso.authweb中间件一起使用

Route::middleware([ 'web', 'sso.auth' ])->get('/route', function () {
    // Your routes
});

如果您看到“请求上未设置会话存储”的错误,请将以下中间件添加到您的app/Http/Kernel.php文件中的$middleware数组

protected $middleware = [
    // ...
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];

使用命名路由作为认证路由

sso.login
sso.logout

sso.loggedIn命名路由添加到您的主页

Route::middleware([ 'web', 'sso.auth' ])->get('/home', function () {
    // Your home page
})->name('sso.loggedIn')->name('home');

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。