@vladzen13

Разумно ли запихивать в payload JWT токена хэш хэша пароля?

Собственно, сабж.

Зачем это в принципе - если положить туда только внутренний id пользователя, то при смене пароля токен останется валидным. Хотелось бы чтобы выданные токены при старом пароле "автоматически гасились".
Почему хэш хэша, а не хэш - ну это стремно отдавать даже хэш пароля на всеобщее обозрение. Можно и посолить для верности.

При валидации токена будем проверять не только подпись самого токена, даты экспирации и все такое, но и что хэш хэша совпадает с тем что сейчас в БД.

Покритикуйте, коллеги. Заранее благодарю.
  • Вопрос задан
  • 264 просмотра
Решения вопроса 2
petermzg
@petermzg
Самый лучший программист
Пароль и JWT токен равнозначны. Это Аутентифика́ция пользователя.
И смена одного не должны влиять на другое.
Если вам нужен механизм анулирования JWT токенов, то просто внесите в него элемент сессии.
Например прописывайте RefId, который остается от токена к токену, поку не потребуется его заблокировать.
Можно внести в "черные списки" на максимальное время жизни токена.
И в данном случае если у вас реализован механизм единого входа, вашему паролю не понадобиться выходить за пределы сервиса Аутентификации
Ответ написан
Нужную вам проверку можно реализовать зная только дату выдачи токена.
Если дата выдачи токена меньше, чем дата изменения пароля - тогда считаем токен отозванным.
+ Не всегда следует при смене пароля отзывать все токены.

Для проверки можно передать целиком весь токен в сервис аутентификации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы