#security #authentication #jwt
Вопрос:
Я создаю API аутентификации в Go. Я много читал о токенах доступа JWT и токенах обновления, но не могу понять рабочий процесс повторного создания токена доступа JWT.
Что я думаю, так это рабочий процесс:
- При входе в систему клиент получает Токен доступа (срок действия=15 минут) и Токен обновления (срок действия=7 дней).
- Клиент сохраняет оба этих токена в локальном хранилище/файле cookie
- Клиент отправляет только маркер доступа в качестве
Authorization
заголовка в каждом последующем запросе API - API аутентификации проверяет маркер доступа и авторизует пользователя
- если все в порядке, выполните операцию; если не в порядке, отправьте обратно «недопустимый токен».
- Клиент при получении «недопустимого токена» отправляет запрос на
refresh-token/
маршрутизацию с токеном обновления (извлеченным из локального хранилища) в качествеAuthorization
заголовка - API аутентификации проверяет токен обновления,
- если не в порядке, автоматически выйдите из системы пользователя и отправьте «недопустимый токен обновления», после чего клиент перенаправится на страницу входа;
- если все в порядке, сгенерируйте новый токен доступа и отправьте Клиенту
- Клиент сохраняет новый токен в локальном хранилище и повторно отправляет запрос API с этим новым токеном в
Authorization
заголовке.
Это правильный рабочий процесс для токенов JWT?
Или это какая-то логика, основанная на таймере (хотя весьма маловероятно), т. Е. Таймер на 15 минут запускается в оперативной памяти клиента, как только таймер истекает, запускается маршрут «обновить токен»?