Использование версии для токена refre sh - PullRequest
0 голосов
/ 29 марта 2020

Я работаю над веб-приложением и собираюсь использовать аутентификацию на основе JWT. Мой процесс аутентификации будет таким:

  1. Клиент отправляет запрос на маршрут /login с учетными данными.
  2. Сервер проверяет учетные данные по базе данных.
  3. Если правильно , создайте токен доступа (короткое время истечения) и refre sh токен (длинное время истечения) с именем пользователя в качестве полезной нагрузки. Отправьте токен доступа в ответ, отправьте refre sh токен в httpOnly cook ie. Кстати, я использую библиотеку JWT для создания обоих этих токенов.
  4. Клиент отправляет токен refre sh через маршрут cook ie на /refresh_token для получения нового токена доступа.
  5. Для выхода из системы я собираюсь очистить токен доступа на стороне клиента, а затем отправить запрос с токеном refre sh на маршрут /logout, чтобы удалить токен refre sh.

Сейчас Мой первый вопрос заключается в том, что я не могу просто удалить refre sh token. Поэтому я подумал, что добавив столбец версии в таблицу пользователей в моей базе данных, чтобы отслеживать текущую версию токена refre sh. Когда пользователь хочет выйти, я собираюсь увеличить версию. Однако это приведет к выходу пользователя из разных клиентов. Я не хочу этого Что я должен сделать, чтобы сделать недействительным токен refre sh и убедиться, что пользователи могут выйти из системы, откуда они отправляют запрос на выход?

Обновление: я подумал, что вместо версии я могу создать новую таблицу в своей базе данных для черного списка refre sh токены. Не противоречит ли это свойству JWT без гражданства?

...