Предложила преподаватель: 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: доп. фича, не в этом модуле.