繁体   English   中英

如何创建用户验证哈希/令牌?

[英]How to create a user verification hash/token?

所以基本上我在我的快速应用程序中有一个注册端点。 我试图做到这一点,以便用户必须在其帐户被激活之前验证他们的电子邮件(默认情况下该帐户已停用)。 我已经设置好了一切,唯一让我感到困惑的是如何创建一个哈希值,我可以将它作为用户单击以验证其帐户的链接的一部分发送。 我曾想过使用 JWT 并只创建一个令牌并将其发送出去,但这似乎有点矫枉过正。 所以我的问题是,为此目的使用 JWT 是一个可靠的解决方案还是有更好的选择? 如果是这样,那是什么替代方案? 谢谢!

这个问题可能会导致自以为是的答案,我会尽力给你一个。

如果您只想验证电子邮件,那么 JWT 对我来说似乎有点矫枉过正。 只需使用nanoid 、来自 npm 的shortid包或使用标准 nodejs crypto创建一个哈希。

将哈希保存到用户的数据库记录中,发送链接如下

https://my.server.com/whatever-path-you choose/${your-generated-hash}

这应该由端点的服务器处理:

  • 通过哈希查找并验证用户
  • 启用帐户
  • 销毁哈希(即从数据库中删除哈希)
  • 重定向到您喜欢的页面,很可能是登录页面。

我的 2 美分。

做一个包含用户 id 和秘密值的令牌以使其更安全,但不要将您的代码在线推送以隐藏此秘密,然后将其作为 cookie 以另一种方式放置,而无需 jwt 使用 res.locals

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM