2016-05-26 3 views
1

Создает приложение back.ds node.js с помощью JWT. Для меня требование простое, что токен авторизации не должен иметь никакого срока действия. Но я сталкиваюсь с проблемой во время недействительности JWT. Когда пользователь меняет свой пароль.Как недействить токен JWT без истечения срока действия

Когда пользователь меняет свой пароль, я создам новый токен JWT и удаляю старый токен, но пользователь может использовать свой старый токен JWT (от других зарегистрированных устройств) и может получить доступ к приложению.

Так может ли кто-нибудь сказать мне, как избежать этого сценария?

ответ

2

Похож на знакомый мне вопрос, я уже ответил на аналогичный вопрос Best practices to Invalidate a JWT Token.

Итак шаги для решения ур проблемы следующим образом,

когда пользователь Войти, создать маркер входа в его базе данных пользователя, без истечения срока.

Следовательно, в то время как недействительности в JWT, выполните следующие действия,

  • получить информацию пользователя и проверьте, является ли маркер в его базе данных пользователя. Если да, позвольте.
  • Когда пользователь выходит из системы, удалите только этот токен из своей пользовательской базы данных.
  • Когда пользователь меняет свой пароль, удалите все токены из своей базы данных пользователей и попросите его снова войти в систему.

Таким образом, в основном вы должны хранить токены в базе данных пользователя и использовать его в то время как недействительным. Простой :)

+0

Это то, что я искал. Последовал ваш предыдущий ответ. Обнаружено, что это действительно полезно для недействительности JWT. Очень ценю помощь ур –

0

Вы не можете аннулировать токен JWT из того, что я знаю, я всегда предлагаю всегда иметь короткое время истечения срока действия с максимальной продолжительностью в течение недели. Может быть, вам будет больно реализовать сначала ваше приложение, чтобы проверить, соответствует ли ваш токен в действительном время от времени и запрашивать новый, когда это недействительно, есть положения, которые позволяют вам обновить токен или проверить, действительно ли токен действителен в большинстве библиотек JWT. Теперь, если вы непреклонны, что хотите сохранить свои токены без истечения срока, я бы предложил сохранить черный список, который будет проверять ваше среднее изделие. Аналогичный вопрос задавали до here. Надеюсь, это поможет

Смежные вопросы