girift / apitwist-sso-laravel-client
这是与ApiTwist SSO集成的客户端。
0.2.1
2024-06-26 12:21 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.2
- laravel/framework: ^8|^9|^10
- laravel/pint: ^1.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- phpunit/phpunit: ^9.5
README
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.auth
与web
中间件一起使用
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)。请参阅许可证文件以获取更多信息。