ruby-on-rails-4 - 在 Rails 应用程序中验证电话号码的服务(例如 Twilo、Plivo、Nexmo)

标签 ruby-on-rails-4 twilio plivo vonage

我想在我的 Rails 4 应用程序中验证用户帐户的电话号码(只需向他们发送一个四位数的 pin 号码,他们需要将其输入回应用程序) - 哪些服务可用,哪些服务最省事实现到 Rails 应用程序中?

我想在国际上验证手机和固定电话号码,但我的主要地区是欧洲、美国和加拿大、澳大利亚和新西兰(我在英国)。

最佳答案

您的标题列出了三个主要的 SMS API,因此对于可用的服务,您已经有了很好的理解。但也有专门针对 2FA/验证的 API。这是 list of some ,值得注意的是,它往往专注于等式的用户端(例如 Google Authenticator)。

您询问是否易于集成 ,2FA API(而不是 SMS API)可能更容易(您无需担心生成真正随机的 OTP,或者如果用户不响应 SMS 则使用语音回退等)。

Nexmo (免责声明:我在那里工作。)实际上提供了 SMS/Voice API,以及建立在这些较低级别 API 之上的验证 API。

与我们的 Verify API (无论 2FA API 是什么,它都将是相似的)您将调用 https://api.nexmo.com/verify/json并传递numberbrand (以识别您的应用程序)参数。响应将包含 request_id ,一旦用户向您的应用程序提供 code ,您将通过 request_idcodehttps://api.nexmo.com/verify/check/json .

所以这是 2 个简单的 API 调用,在此期间您关联 request_id与用户的 session 。这是 quickstart on that process .

具体来说,对于 Nexmo,如果在没有第二次 API 调用的情况下经过了足够长的时间,则会再次发送代码,这次是通过语音调用(或者,如果号码是固定线路,则以语音开始)。

与我们的 SMS API (同样,无论 API 是什么,都将是相似的)首先您将生成一个代码 - 这听起来可能很简单,如果安全是一个问题,您需要确保生成是真正随机的。

然后您将存储代码和send an SMS .使用 Nexmo,可以调用 https://rest.nexmo.com/sms/jsontext您的留言,tofrom *。那里还有安全问题,因为您将代码存储在验证它的同一台服务器上。如果这受到损害,验证流程也是如此。

最后,您会将用户提供的代码与您存储的代码进行比较。

所以最省事真的取决于你。进行两次 API 调用并避免安全代码生成/存储(并可能免费获得语音回退)是否更容易?或者 DIY 代码生成并将您的集成减少到对 SMS API 的一次调用?

关于ruby-on-rails-4 - 在 Rails 应用程序中验证电话号码的服务(例如 Twilo、Plivo、Nexmo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861944/

相关文章:

javascript - 使用AJAX调用Node.js文件发送短信

node.js - Uncaught Error : plivo. RestAPI 不是函数

java - Plivo SMS 未发送并在 Java 中出现错误

ruby-on-rails - Ruby sort_by 哈希数组

ruby-on-rails - rspec/guard 运行 minitest 并获取无效选项 : -f

ruby-on-rails - 与 MRI Ruby 的并发请求

java - 如何使用 Java 在 Plivo 中创建电话 session ?

ruby-on-rails - 基于区域设置的 Rails 路线

java - Twilio 调用电话号码屏蔽

c# - 如何从 twilio 跟踪我们应用程序的用户消息和用户电话号码