Перейти к содержимому

Трек · Бэк · На графе модуля

Сессии в Redis: отзыв refresh-токенов

Делают
Даша (бэк), Денис (devops)
Менторы
Саша

Подзадачи

  • Redis в compose через Ansible
  • Refresh-сессии в Redis вместо refresh_sessions
  • Отзыв refresh-токена
  • Смена пароля — отзыв всех сессий, кроме текущей

Связи

  • BFF — auth.logout отзывает refresh-токен в Go; refresh делает BFF
  • Профиль пользователя — Смена пароля — в профиле; после неё — отзыв остальных сессий

Задачи · 0 из 1 готово

Ready

  • infra#46DevOps. Redis в compose через AnsibleSprint 8 · Денис

Предложила преподаватель: refresh-токены — в Redis, механизм их отзыва и при смене пароля — отзыв всех сессий, кроме текущей.

Что сейчас ​

Access-токен — JWT, его не хранят: бэк проверяет подпись. В Postgres лежат refresh-сессии — таблица refresh_sessions (user_id, token_hash, expires_at, миграция). Их и переносим: в Redis срок жизни сессии — TTL, истёкшие удаляются сами.

Решения ​

  • Redis — контейнер в compose рядом с Postgres, выкатывает Ansible. Так же, как Postgres, и бесплатно. Управляемый Redis Selectel через Pulumi не берём: платный кластер, а Postgres у нас не управляемый.
  • Бэк — Даша (она же на бэке профиля, где смена пароля), инфра — Денис, ментор — Саша.

Не входит ​

Сессии по устройствам — список устройств и «выйти с этого устройства», как в Telegram: доп. фича, не в этом модуле.