繁体   English   中英

设计登录后进行短信验证,怎么办?

[英]SMS verification after devise login, how?

我正在使用devise进行用户身份验证,如何在单击登录按钮后要求用户输入要自动发送到他的手机的短信代码,以便成功登录。

我按照互联网上的一些说明进行操作,也做了twilio并获得了API密钥,但仍然不知道如何完成此操作。

以我的方式...可能就是这个过程

1)创建一个虚拟页面以设计登录..在其中获取登录详细信息

2)从数据库中查找用户详细信息并发送他/她的消息

3)在虚拟页面上提交后,下一步将是输入消息otp代码

4)提交后....匹配用户的otp与发送otp

5)如果比通过api登录到设备面板更正确

我们需要更多信息才能获得完整的答案(如果可能)。

首先,您需要一个短信提供商(您似乎已经选择了twilio)。 然后,您需要代码才能使用该提供程序发送短信。 https://www.twilio.com/blog/2012/02/adding-twilio-sms-messaging-to-your-rails-app.html

然后,您需要逻辑。 这是一种方法。 我假设您正在使用具有登录凭据的数据库。

添加一个新表,该表包含3列(添加对主键不会造成损害),一列用于user_id,一列用于代码,下一列用于日期。

然后,当用户要登录时,请创建一个代码(无论是否为数字),并将代码添加到具有当前日期和user_id的表中,然后将短信发送至用户的电话号码,并将用户重定向至可以输入代码的页面。 当他输入代码时,您可以将其与数据库中的行进行比较并进行验证,拥有日期可以使添加代码超时变得容易,以便用户将不得不在60秒内输入代码,或者您将在什么时间输入代码喜欢。 您将必须向用户输入短信代码的页面发送一个ID,以便您知道它是哪个用户,当然应该对照表进行检查。 使用此方法可以轻松跟踪用户进行的所有尝试。

提示是增加用户每天/小时可以使用的短信数量的限制。 然后,他将在一天的剩余时间内被锁定,明天将不得不重试。 否则,具有用户/通行证的人可能会发送数千个请求,并迫使您发送那么多短信,从而使您花费大量金钱。 当然,这取决于您是否以某种方式将短信借记到用户帐户中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM