Node js中的一次性密码

One time Password in Node js

我想为我的 node-express 使用 OTP API。 现在我可以使用用户名和密码来个性化设置,但我想使用手机号码和 OTP 来实现。 我可以使用哪些参考资料?

看到这里你必须这样做:

工作流程:

  1. 使用消息发送 Api 类似 twilioOpenTok 类似的东西。
  2. 在发送消息时使用Socket.io进行实时交互
  3. speakeasy 你应该使用 npm 包,因为它非常适合生成一次性密码代码
  4. 使用 express 创建您的应用程序

参考:

OTP Verification using NODE & EXPRESS

Git 回购:

Download Working Code

如果您只想通过发送 OTP 验证 phone 然后询问它,那么我认为您不应该选择 Speakeasy。

Speakeasy 主要用于 TOTP 和 HOTP,它们更像是 2 因素身份验证(例如,每 30 秒生成一次 OTP)。

但是既然你想验证用户的phone一次你需要做的就是:

  1. 生成任意 n 位随机数并将其保存在 table 数据库中映射到用户的创建时间。
  2. 将此发送到用户的 phone。您可以使用任何服务。我个人使用twilio。
  3. 当用户输入 OTP 时,检查当前时间与创建时间是否有效。
  4. 处理案例:a) 如果有效:将用户标记为已验证 b) 如果无效:随心所欲。