Привет! Поискал по чату сообщения по теме JWT. Как я понял, здесь есть люди, которые не очень любят JWT :) А нельзя сделать так:
1. В JWT указываем время устаревания токена: "expire_time": "16:00:00-6.11.2019" (на формат не обращайте внимание). Время указывается серверное.
2. При каждом запросе это время проверяется
3. Если нужно сделать токен невалидным (в случае смены пароля или других ситуаций) мы имеем Redis-хранилище, где у каждого юзера есть свой массив "blacklist", где хранятся инвалидированные токены
Алгоритм такой:
1. Чекаем сам токен (просто расшифровываем)
2. Берем время из payload и сравниваем
3. Если всё норм, берем ID пользователя и получаем из Redis blacklist. Если его там нет, значит всё норм