@vladzen13

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы