您好,有谁知道如何在 NodeJS 中销毁令牌?我正在使用 JWT 进行密码重置,然后我通过电子邮件向用户发送带有令牌的 url,系统使用令牌验证令牌jwt.verify()
,如果正确,它会更新密码,问题是这个令牌是活动的让我们说它的持续时间为 1 小时,为了提高安全性,我不希望这个令牌在 1 小时内有效,所以我想要做的是在更新密码后销毁我拥有的令牌,以便它只能是用过一次。如何用 jwt 做到这一点?
您好,有谁知道如何在 NodeJS 中销毁令牌?我正在使用 JWT 进行密码重置,然后我通过电子邮件向用户发送带有令牌的 url,系统使用令牌验证令牌jwt.verify()
,如果正确,它会更新密码,问题是这个令牌是活动的让我们说它的持续时间为 1 小时,为了提高安全性,我不希望这个令牌在 1 小时内有效,所以我想要做的是在更新密码后销毁我拥有的令牌,以便它只能是用过一次。如何用 jwt 做到这一点?
无法撤销JWT 令牌。JWT 主要用于系统认证,不作为进程标识符。您可以通过两种方式完成:
使用表格
以下示例使用sequelize和moment:
当密码重置请求出现时,您检查截止日期是否已过期:
使用令牌
使用令牌类似,当发出密码重置请求时,您会在最长时间内生成令牌。
此令牌保存在
sessionStorage
:并且当点击恢复按钮时,请求从那里发送到前端,通过发送令牌将请求发送到后端。
当后端收到令牌时,它会检查它是否还没有过期:
在此过程结束时,如果令牌尚未过期,它将被重定向到:
http://tuapp.com/[email protected]
,您必须在此处放置表单以更新密码并发送查询email
。应该注意的是,如果令牌已经过期或密码已经更改,则必须将其删除。
sessionStorage