JWT без блэклистов: мгновенно инвалидируем все сессии
В WikiMind ушли от классической боли с JWT: без блэклистов и лишнего состояния. Вместо этого сделали уникальный jwt_secret на каждого пользователя и мгновенно разлогиниваем везде одним ключом.

В WikiMind мы ушли от классической боли с JWT: не тащим блэклисты, не считаем “а этот токен уже умер или ещё жив?”. Вместо этого сделали уникальный jwt_secret на каждого пользователя.
Как это работает: сначала декодируем токен без проверки подписи, вытаскиваем user_uuid, идём в БД за персональным jwt_secret — и только потом валидируем подпись. Если нужно разлогинить пользователя везде, просто меняем один ключ. Всё: все старые токены превращаются в тыкву. O(1) вместо возни с блэклистами.
Для наших 1200+ DAU это не “микрооптимизация”, а нормальная архитектурная гигиена. Особенно сейчас, когда в IT всё крутится вокруг security-by-design: меньше состояния, меньше edge-case'ов, меньше шансов словить сюрприз в пятницу вечером.
Короче, иногда один ключ решает больше, чем целый auth-сервис на кофеине 😅