Delgus
@Delgus

Должен ли refresh_token быть обязательно JWT, если access_token — JWT?

Я решил использовать для REST API идентификацию,аутентификацию и авторизацию по JWT-токену.
и возникли вопросы при реализации рефреша токенов.
Вот есть у меня запрос -
POST auth/refresh_token - должен возвращать access_token и refresh_token.
И вот тут вот загвоздка. Везде пишут что клиент должен отправить и access_token, и refresh_token.
Разве одного refresh_token'а не достаточно?
И много где видел что refresh_token делают JWT, зачем? Ведь refresh_token не используется в других сервисах, в чем смысл делать его jwt?
Я вот храню refresh_token в БД в таблице с полями: id, user_id. refresh_token,expired(время истечения срока действия токена)
Соответственно когда клиент присылает refresh_token я ищу его в БД, если не находит - возвращаю ошибку что клиент не авторизован.
Потом сверяю по дате истечения refresh_token. если срок действия истек - возвращаю ошибку что клиент не авторизован, а если все хорошо - генерирую токены, удаляю старый refresh_token, сохраняю новый и возвращаю access_token и refresh_token клиенту. Дальше, для других запросов к API используется соответственно access_token.
Не знаю, мне кажется что иметь refresh_token в jwt виде ни к чему
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Начнем с того что JWT это не аутентификация и тем более не авторизация. Это формат токена. Аутентификация происходит через Delegation протокол oauth или oidc. Формат токена в них не регламентируется. Делайте как вам удобнее
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы