一次在Node js中输入密码

时间:2016-10-06 05:08:19

标签: node.js express one-time-password

我想将OTP用于我的node-express API。 现在我可以使用用户名和密码对内容进行个性化设置,但是想使用手机号码和OTP进行个性化。 我可以使用哪些参考资料?

2 个答案:

答案 0 :(得分:6)

如果你想通过发送和OTP验证手机,然后要求它,那么我认为你不应该选择Speakeasy。

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

但是,既然您只需要验证用户的手机,那么:

  1. 生成任意随机的n位数字,并将其保存在映射到用户的数据库中的表中,并创建时间。
  2. 将此信息发送给用户的手机。您可以使用任何服务。我个人使用twilio。
  3. 当用户输入OTP时,请根据创建时间检查当前时间,看它是否有效。
  4. 处理案例:a)如果有效:将用户标记为已验证                  b)如果无效:无论你想做什么。

答案 1 :(得分:5)

看到这里你必须这样做

<强>工作流

  1. 使用发送Api的邮件,例如twilioOpenTok之类的内容。
  2. 在发送消息时使用Socket.io进行实时互动
  3. 您应该使用
  4. speakeasy npm包,因为它可以生成一次性密码
  5. 使用express创建应用
  6. <强>参考

    OTP Verification using NODE & EXPRESS

    Git Repo

    Download Working Code