【问题标题】:One time Password in Node js [closed]Node js中的一次性密码[关闭]
【发布时间】:2016-10-06 05:08:19
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    但既然您想验证用户的手机,您需要做的就是:

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

    【讨论】:

    • 我还希望我的应用程序记住当前用户并相应地更改视图。在使用护照身份验证时,它会返回一些“x-access-token”,通过它我们可以为特定客户个性化应用程序。这个 otplib 是否也返回任何这样的东西?如果没有,我怎么能记住当前用户?
    【解决方案2】:

    看到这里你必须这样做

    工作流程

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

    参考

    OTP Verification using NODE & EXPRESS

    Git 回购

    Download Working Code

    【讨论】:

    • Speakeasy 主要用于 TOTP 和 HOTP,它们更像是 2 因素身份验证(例如,每 30 秒生成一次 OTP)。但这对于电话验证来说有点过头了
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2018-06-20
    • 2012-01-29
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多