小智 14

只要您用来签署令牌的秘密和验证它的方式是安全的,使用像 JWT 这样的无状态令牌就是安全的。但是,在您的密码重置 URI 中使用 JWT 作为身份验证令牌之前,您应该考虑某些其他方面......

由于您不能使特定的 JWT 无效(无需再次保持状态)并且到期是不够的(在这种特定情况下),您基本上想要的是您的 JWT 是众所周知的一次性或单次-使用令牌。原因是您可能不希望多次使用单个密码重置链接来重置密码,因为它会允许潜在的攻击者完全锁定用户(通过不断更改密码)。

我在这里描述了它是如何工作的:带 JWT 的单次使用令牌- 基本上你需要将你在服务器端的某种状态(在你的情况下,例如用户密码的哈希)转换为 HMAC 密钥和使用它来签署您的特定于用户的令牌。这将导致更改密码后令牌验证失败...


Thi*_*ilo 13

您链接常见问题解答说:

url中JWT令牌的用例是:

这两个都是一次性令牌的好候选者(在点击之后到期).

所以,是的.只需确保每封电子邮件只能激活一次(并且不要使用示例中可怕的"秘密"密钥,如果签名可以伪造,则可以绕过您的验证).