Status
Все что ниже не актуально
Клиент авторизации OAuth2
Дает возможность:
- получить токен доступа клиента
password
, - переиздать новый токен доступа клиента
password
, - запрашивать необходимые scopes,
- получить токен доступа типа credentials (полезно для сервер-сервер соединений),
- сохраняет и управляет сохранностью (кеширования токенов доступа и обновления)
Вашему приложению необходимо
- подключить сервис в клиенте запросов,
- после получению кода ошибки
401
- переиздать токенrefresh()
или выписать новыйcredentials()
, и повторить запрос с новым токеном.
Usage
composer require shadoll/lupinus
Переменные окружения
LUPINUS_SERVER
= - Сервер авторизации https://server.com
LUPINUS_CLIENT_ID
= - ID клиента OAuth2
LUPINUS_CLIENT_SECRET
= - SECRET клиента OAuth2
LUPINUS_SCOPE
= - Роли клиента необходимые для работы приложения
LUPINUS_CACHE_DRIVER
= - тип драйвера хранения токенов доступа и токенов обновления
(доступно (2020-02-15) только Json) в будущем (Jstorage) и т.п.
ВСЕ переменные опциональны и могут быть переопределены в конструкторе сервиса
(кроме LUPINUS_CACHE_DRIVER
- не переопределяется, если его не будет кешироваться токены не будут)
$authService = new \Lupinus\AuthService();
// или с параметрами
$authService = new \Lupinus\AuthService(
'https://server.com',
'my_app',
'secret...',
'access_token...',
'refresh_token...',
'scope1 scope2'
);
/** Авторизация
* @var array $token
*/
$token = $authService->auth('jarvis@google.com', 'jarvis_password'); // LUPINUS_SCOPE
// запросить scope
$token = $authService->auth('jarvis@google.com', 'jarvis_password', 'scope3');
/** Обновления токена доступа по refresh_token
* @var array $token
*/
$token = $authService->refresh(); // используется последний токен refresh_token или с кеша (если включен)
// или
$token = $authService->refresh($refresh_token); // принудительный $refresh_token
/** токен credentials
* @var array $token
*/
$token = $authService->credentials(); // LUPINUS_SCOPE
// или с scope
$token = $authService->credentials('admin');