shadoll / lupinus
OAuth2 库
v2.3.2
2020-05-28 16:35 UTC
Requires
- php: >=7.2
- ext-json: *
- guzzlehttp/guzzle: ^6.3
- illuminate/support: >=6.0
Requires (Dev)
- phpstan/phpstan: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^8
- sebastian/phpcpd: ^4.1
README
配置(用于laravel)
关闭Api请求
- 连接提供者
// config/app.php
/*
* Application Service Providers...
*/
// ...
Lupinus\Lara\AuthServiceProvider::class,
发布配置文件
php artisan vendor:publish --provider="Lupinus\Lara\AuthServiceProvider"
- 配置文件(这涉及到将服务器
keycloak
上的OIDC
表(在json中)复制到变量$OIDC_JSON
)
- 配置文件(这涉及到将服务器
在
config/auth.php
配置文件中// config/auth.php 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'keycloak', // <- set to keycloak 'provider' => 'users', 'hash' => false, ], ],
添加必要的路由中间件
Route::prefix('api/v1')
->middleware('auth:api') // <-
->...;
Admin keycloak
要作为管理员与 keycloak 一起工作,需要定义环境变量 LUPINUS_AUTH_USERNAME
和 LUPINUS_AUTH_PASSWORD
对于 关闭Api请求
,管理员不是必需的(除非需要角色)
关闭Horizon
需要 Admin keycloak
在
App\Http\Kernel
中的$routeMiddleware
部分,添加'horizon.auth' => \Lupinus\Lara\HorizonAuth::class,
在配置文件
horizon.php
中添加
'middleware' => ['web', 'horizon.auth'], // <- к существующему web добавить horizon.auth
'roles' => ['horizon'], // <- добавить роли (по необходимости)
- 在
App\Providers\HorizonServiceProvider
中重写authorization
方法:(因为将通过中间件进行身份验证)
// ...
protected function authorization()
{
Horizon::auth(function ($request) {
return true;
});
}
// ...