codewiser / uac-laravel
FC Zenit OAuth2.0 Client for Laravel
Installs: 15
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/codewiser/uac-laravel
Requires
- ext-json: *
- codewiser/uac: *
- laravel/framework: >=5.8
This package is auto-updated.
Last update: 2025-03-08 22:20:49 UTC
README
Пакет предоставляет разработчику middleware под названием auth.oauth, которым разработчик может закрыть все маршруты, где требуется авторизация пользователя.
Авторизация пользователя происходит на OAuth сервере ФК Зенит.
Состав
Пакет содержит маршруты, их контроллеры и мидлварю.
Роуты
GET /oauth/callback
Адрес обратного вызова.
GET /oauth/logout
Адрес для деавторизации пользователя одновременно на сервере и на сайте. Разработчик должен использовать этот роут только в случае необходимости деавторизации именно на сервере.
GET /oauth
Сервисный роут, показывает информацию об авторизованном пользователе.
Настройка
OAUTH_CLIENT_ID= // ClientId OAUTH_CLIENT_SECRET= // ClientSecret OAUTH_SCOPES= // Your application default scopes
Приложение, которое вы зарегистрируете на OAuth-сервере, будет иметь redirect_uri
http(s)://example.com/oauth/callback.
Если модель пользователя в вашем приложении отличается от \App\User::class,
то укажите правильную модель
USER_MODEL=\App\Models\User
Пропишите Codewiser\UAC\Laravel\ServiceProvider в config/app.php.
Переопределение
Пакет пытается авторизовать локального пользователя по совпадению email;
если пользователя нет, то пакет добавляет его.
Если у вас в приложении реализована извращенная логика работы с пользователем,
то вы можете переопредлить классы UacClient (вас интересует метод authorizeResourceOwner) и AuthenticateWithOauth,
сделать свой middleware и использовать его.
Использование
С помощью предоставленного мидлваря можно закрыть один роут:
Route::get('/test')->middleware('auth.oauth');
Можно закрыть группу роутов:
Route::group(['middleware' => ['auth.oauth']], function() { Route::get('/test1'); Route::get('/test2'); });
А можно вообще добавить этот мидлварь в группу web, тогда весь сайт будет закрыт от неавторизованного доступа.
protected $middlewareGroups = [ 'web' => [ // ... \Codewiser\UAC\Laravel\AuthenticateWithOauth:class, ], ];
Ещё
Пакет наследует codewiser/uac, поэтому разработчикам доступны все способы получения access_token, и предоставляется удобный интерфейс доступа к api-ресурсам.