Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • v2.3.2
  • v2.3.1
  • v2.3.0
  • v2.2.0
  • v2.1.2
  • v2.1.1
  • v2.1.0
  • v2.0.0
  • v0.1.0
10 results

lupinus

  • Clone with SSH
  • Clone with HTTPS
  • oosor's avatar
    Andrew authored
    1819b54c
    History

    Status

    Latest Stable Version pipeline status License


    doc

    doc

    doc

    Все что ниже не актуально

    Клиент авторизации 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');