fbkl / lupinus
OAuth2 library
    v2.3.2
    2020-05-28 19: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"- Настроить файл (это сводится к копированию 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;
        });
    }
    // ...