使用Nexmo或Twilio仅使用电话号码进行登录和验证

这是一个身份验证流程,仅使用提供的电话号码(Whatsapp样式)登录用户。 步骤是:

  • 用户输入电话号码并发送到服务器。
  • 服务器生成4位随机密钥,并将该对(电话,密钥)保存在数据库中。
  • 服务器要求第三方SMS服务将密钥发送到手机。
  • 短信服务发送消息。
  • 用户从短信输入密钥,并与手机一起发送到服务器。
  • 服务器根据数据库检查对。
  • 如果配对存在,服务器会发回一个令牌用于进一步调用。
  • 在这里输入图像描述

    我想了解的是Twilio和Nexmo等服务适合哪里(或替换部分流程)。

    据我所知,以Nexmo为例,我可以用API调用替换第2步和第3步:
    https://api.nexmo.com/verify/
    并将数据库中的request_id作为pair(phone,request_id)保存在数据库中。
    而现在,当用户输入一个4位数的代码并将其发回时,
    我需要打电话给:
    https://api.nexmo.com/verify/check/json
    为其提供request_id和代码。

    但我在哪里得到request_id?
    服务器是否需要将它发回给客户端,从Nexmo获得它的那一刻?
    我看不到在这里使用Nexmo的好处,它会为我节省什么?


    回答你的第一个问题:request_id是对第一个验证API调用的响应的一部分。 请参阅:https://docs.nexmo.com/index.php/verify/verify

    至于Nexmo在这里有什么好处,我相信你有两种选择:

  • 生成自己的代码,使用Nexmo将文本发送给用户,让用户将代码提交回应用程序,根据自己的数据库验证代码。
  • 使用Nexmo验证服务生成代码并发送给用户,将返回的request_id存储在数据库中,让用户向应用程序提交代码,调用Nexmo验证API验证代码。
  • 在某些方面,第一个选项更简单,因为它的API调用较少。 然而,使用Nexmo Verify的第二种选择的好处是,如果SMS不起作用,它们可以为服务提供更多的功能,以回到语音电话,过滤掉虚拟电话号码以防止垃圾邮件,不得不支付失败的短信尝试,报告/分析等。

    希望这会有所帮助。

    链接地址: http://www.djcxy.com/p/33093.html

    上一篇: Login and Verify with only phone number using Nexmo or Twilio

    下一篇: HTTP GET request with Node and Express (Nexmo)