shadoll / lupinus
OAuth2 library
v3.0.0
2026-10-26 19:23 UTC
Requires
- php: ^8.2
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^12.0 | ^13.0
Requires (Dev)
- phpunit/phpunit: ^9.6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Настройка (для laravel)
Закрытие Api запросов
- Подключить провайдер
// config/app.php
/*
* Application Service Providers...
*/
// ...
Lupinus\Lara\AuthServiceProvider::class,
Опубликовать конфиг файл
php artisan vendor:publish --provider="Lupinus\Lara\AuthServiceProvider"- Настроить файл (это сводится к копированию
OIDCтаблицы (в json) с сервераkeycloak) в переменную$OIDC_JSON
- Настроить файл (это сводится к копированию
В конфиге
config/auth.php// config/auth.php 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'keycloak', // <- set to keycloak 'provider' => 'users', 'hash' => false, ], ],Добавить в нужный роут middleware
Route::prefix('api/v1')
->middleware('auth:api') // <-
->...;
Admin keycloak
Для работы с keycloak в роли администратора необходимо
определить переменные окружения LUPINUS_AUTH_USERNAME
и LUPINUS_AUTH_PASSWORD
Для Закрытие Api запросов admin не нужен
(только в случае если понадобятся роли)
Закрытие 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: (так как авторизация будет проводится через Middleware)
// ...
protected function authorization()
{
Horizon::auth(function ($request) {
return true;
});
}
// ...