我试图弄清楚如何为密码重置功能颁发一次性使用的 JWT 令牌并仍然保持无状态。遇到了带 JWT 的一次性令牌,它基本上建议包含当前密码的哈希值,一旦密码成功更改,该哈希值就会失效。
我对在 JWT 中包含密码哈希感到不舒服,所以我进行了一些研究,发现了JWT ID 规范,但这需要将 ID 存储在某个地方,以便可以在令牌验证时对其进行检查。
所以我的问题是,如果我在通过电子邮件发送的密码重置链接令牌中包含当前密码哈希,会有什么安全问题?
使用 JWT ID 并将其作为列添加到数据库中的某处而不是使用密码会更好吗?