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

Authentication 使用Nexmo或Twilio仅使用电话号码登录和验证,authentication,twilio,azure-mobile-services,nexmo,Authentication,Twilio,Azure Mobile Services,Nexmo,这是一个身份验证流,它只使用提供的电话号码登录用户(Whatsapp样式)。这些步骤是: 用户输入电话号码并发送到服务器 服务器生成4位随机密钥,并将密钥对(电话、密钥)保存在数据库中 服务器要求第三方短信服务向手机发送密钥 短信服务发送信息 用户通过短信输入密钥,并与手机一起发送到服务器 服务器根据数据库检查该对 若该对存在,服务器将发回令牌以供进一步调用 我想了解的是像Twilio和Nexmo这样的服务在哪里适合(或者替换部分流程) 据我所知,以Nexmo为例, 我可以将步骤2和3替换为对

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

  • 用户输入电话号码并发送到服务器
  • 服务器生成4位随机密钥,并将密钥对(电话、密钥)保存在数据库中
  • 服务器要求第三方短信服务向手机发送密钥
  • 短信服务发送信息
  • 用户通过短信输入密钥,并与手机一起发送到服务器
  • 服务器根据数据库检查该对
  • 若该对存在,服务器将发回令牌以供进一步调用
  • 我想了解的是像Twilio和Nexmo这样的服务在哪里适合(或者替换部分流程)

    据我所知,以Nexmo为例, 我可以将步骤2和3替换为对的API调用:

    并将数据库中响应的请求\u id保存为配对(电话,请求\u id)。
    现在,当用户输入一个4位代码并将其发回时,
    我需要打电话:

    为其提供请求id和代码

    但我从哪里获得请求id?
    服务器从Nexmo获取数据时是否需要将其发送回客户端?

    我看不到在这里使用Nexmo的好处,它能为我节省什么

    对第一个问题的回答:请求id是对第一个验证API调用的响应的一部分。见:

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

  • 生成您自己的代码,使用Nexmo将其文本发送给您的用户,让用户将代码提交回您的应用程序,根据您自己的数据库验证代码
  • 使用Nexmo验证服务生成代码并将其发送给用户,将返回的请求id存储在数据库中,让用户向应用程序提交代码,调用Nexmo验证API验证代码
  • 在某些方面,第一个选项更容易,因为它减少了API调用。然而,使用Nexmo Verify的第二个选项的好处是,它们为服务提供了更多的功能,可以在短信不起作用的情况下返回语音呼叫,过滤虚拟电话号码以防止垃圾邮件,您不必为失败的短信尝试、报告/分析等付费

    希望这有点帮助