Рабочий процесс повторной генерации токена доступа JWT

#security #authentication #jwt

Вопрос:

Я создаю API аутентификации в Go. Я много читал о токенах доступа JWT и токенах обновления, но не могу понять рабочий процесс повторного создания токена доступа JWT.

Что я думаю, так это рабочий процесс:

  • При входе в систему клиент получает Токен доступа (срок действия=15 минут) и Токен обновления (срок действия=7 дней).
  • Клиент сохраняет оба этих токена в локальном хранилище/файле cookie
  • Клиент отправляет только маркер доступа в качестве Authorization заголовка в каждом последующем запросе API
  • API аутентификации проверяет маркер доступа и авторизует пользователя
  • если все в порядке, выполните операцию; если не в порядке, отправьте обратно «недопустимый токен».
  • Клиент при получении «недопустимого токена» отправляет запрос на refresh-token/ маршрутизацию с токеном обновления (извлеченным из локального хранилища) в качестве Authorization заголовка
  • API аутентификации проверяет токен обновления,
  • если не в порядке, автоматически выйдите из системы пользователя и отправьте «недопустимый токен обновления», после чего клиент перенаправится на страницу входа;
  • если все в порядке, сгенерируйте новый токен доступа и отправьте Клиенту
  • Клиент сохраняет новый токен в локальном хранилище и повторно отправляет запрос API с этим новым токеном в Authorization заголовке.

Это правильный рабочий процесс для токенов JWT?

Или это какая-то логика, основанная на таймере (хотя весьма маловероятно), т. Е. Таймер на 15 минут запускается в оперативной памяти клиента, как только таймер истекает, запускается маршрут «обновить токен»?