用于验证 Rails 应用中 phone 号码的服务(例如 Twilo、Plivo、Nexmo)

Services (such as Twilo, Plivo, Nexmo) to verify phone numbers in Rails app

我想验证 phone 我的 Rails 4 应用程序中的用户帐户数量(只需向他们发送一个四位数的 PIN 码,他们需要将其输入回应用程序) - 哪些服务可用,哪些服务最容易在 Rails 应用程序中实施?

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

这里是 Twilio 开发人员布道者。

您绝对可以使用 Twilio(或任何其他服务)来验证 phone 号码。 good blog post here 解释了通过短信执行 phone 验证的步骤。

由于您也想验证固定电话号码,因此您可能还需要添加语音确认,您可以打电话给用户并读出 4 位密码。这可以通过类似的方式完成,但是通过拨打 phone 号码,该号码使用 Twilio's text to speech <Say> verb.

读出单独的代码

让我知道这是否有帮助。我也在英国,如果我能提供进一步帮助,请联系我。

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

由于 您询问集成的难易程度,2FA API(而不是短信 API)可能更容易(您不需要需要关注生成真正随机的 OTP,或者如果用户不响应 SMS 等,则使用语音回退)。

Nexmo免责声明:我在那里工作。)实际上同时提供短信/语音 API 和内置的验证 API在那些较低级别的 APIs 之上。

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

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

特别是对于 Nexmo,如果足够长的时间没有第二次 API 呼叫,代码将再次发送,这次是语音呼叫(或者,如果号码是固定电话,则从语音开始).

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

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

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

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