Токены
В модуле предусмотрено два вида авторизации:
с помощью логина и пароля пользователя
с помощью токена
В данном случае будет рассмотрена авторизация с помощью токена.
Для возможности авторизации по токену, необходимо выполнить условия:
Включить Авторизацию по токену в настройках модуля - раздел Безопасность;
Сгенерировать токены для пользователей - раздел Безопасность;
Рекомендуется задать общую Ключевую фразу для токена - раздел Безопасность;
Настроить авторизацию в нужных роутах - Карта роутов. Ключи ['security']['auth']['required'] и ['security']['auth']['type'] - пример карты;
Со стороны клиента, при запросе, передать заголовок 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) {
}
Last updated