5

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

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

4

2 回答 2

5

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

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

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

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

所以这是 2 个简单的 API 调用,在此期间您将request_id与用户的会话相关联。这是该过程的快速入门

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

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

然后您将存储代码并发送短信。使用 Nexmo,这将是https://rest.nexmo.com/sms/jsontext您的消息、thetofrom* 的调用。那里还有安全问题,因为您将代码存储在验证它的同一台服务器上。如果这受到损害,验证流程也是如此。

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

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

于 2015-03-11T23:01:15.257 回答
1

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

您绝对可以使用 Twilio(或任何其他服务)来验证电话号码。这里有一篇很好的博客文章,解释了通过 SMS 执行电话验证的步骤。

由于您也希望验证固定电话号码,因此您可能还需要添加语音确认,您可以在其中呼叫用户并读出 4 位密码。这可以以类似的方式完成,但通过拨打电话号码,该电话号码使用Twilio 的文本转语音<Say>动词读出个人代码。

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

于 2015-03-05T10:00:24.027 回答