Документация 1С-Битрикс: Модули artamonov.rest

Токены авторизации

В модуле предусмотрено два вида авторизации:

  • с помощью логина и пароля пользователя
  • с помощью токена

В данном случае будет рассмотрена авторизация с помощью токена.

Для возможности авторизации по токену, необходимо выполнить условия:

  1. Включить Авторизацию по токену в настройках модуля - раздел Безопасность;
  2. Сгенерировать токены для пользователей - раздел Безопасность;
  3. Рекомендуется задать общую Ключевую фразу для токена - раздел Безопасность;
  4. Настроить авторизацию в нужных роутах - Карта роутов. Ключи ['security']['auth']['required'] и ['security']['auth']['type'] - пример карты;
  5. Со стороны клиента, при запросе, передать заголовок Authorization-Token со значением токена, а именно {ключевая фраза}:{токен}. Ключевая фраза указывается при наличии.

После такой настройки, на нужных роутах будет доступна авторизация по токену. И доступ к данным будет предоставлен только после проверки токена.

Также в модуле имеется класс для работы с токенами, ниже представлено описание методов класса.

use \Bitrix\Main\Loader;
use \Bitrix\Main\LoaderException;
use \Artamonov\Rest\Foundation\Token;

try {

    Loader::includeModule('artamonov.rest');

    $token = Token::getInstance();
    $userId = 1;
    $clientToken = '8f757146-097eb57b-b07d669e-112463ff';

    // Возвращает информацию по токену.
    // То есть, данные пользователя, которому принадлежит токен.
    // Используется метод UserTable::getList().
    $result = $token->getData($clientToken);

    // Возвращает данные токена по ID пользователя
    $result = $token->getDataByUserId($userId);

    // Возвращает срок годности токена
    $result = $token->getExpirationDate($clientToken);

    // Обновляет срок годности токена, согласно настройкам Безопасности модуля
    $result = $token->updateExpirationDate($clientToken);

    // Удаляет токен
    $result = $token->delete($clientToken);

    // Генерация токенов для пользователей.
    // Без переданных параметров, будут сгенерированы токены для тех пользователей, у кого токены отсутствуют.
    // Поддерживается параметр $parameters - все те же ключи, что и для метода UserTable::getList().
    // И параметр $update со значениями true | false - указывается на то, обновлять уже созданные токены или же создать новые токены, для тех у кого их нет.
    $result = $token->generate();

    // Пример обновления токенов для пользователей, у которых ID больше 30
    $parameters['filter'] = [
        '>ID' => 30
    ];
    $update = true;
    $result = $token->generate($parameters, $update);

} catch (LoaderException $e) {
}