我正在使用devise进行用户身份验证,我如何才能要求用户在点击登录按钮后,输入sms代码,这些代码会自动发送到他的手机上,以便成功登录。
我按照网络上的一些说明做了twilio,拿到了API密钥,但还是不知道怎么做。
发布于 2016-06-09 19:02:39
因为我的way....may就是这个过程
1)创建一个用于devise登录的虚拟页面。其中获取登录详细信息
2)从db中查找用户详细信息,并向其发送消息
3)在虚拟页面上提交后,下一步将是输入消息otp代码
4)在此提交后....匹配用户的动态口令和发送动态口令
5)通过api登录设备面板是否正确
发布于 2016-06-09 19:08:13
我们需要更多的信息来获得完整的答案(如果可能)。
首先,您需要一个sms提供商(您似乎选择了twilio)。然后,您需要能够使用该提供程序发送sms的代码。https://www.twilio.com/blog/2012/02/adding-twilio-sms-messaging-to-your-rails-app.html
然后你需要逻辑。这是一种方法。我假设您使用的是具有登录凭据的数据库。
添加一个包含3列的新表(为主键添加另一列不会有什么影响),一列用于user_id,一列用于代码,下一列用于日期。
然后,当用户想要登录时,创建一个代码(数字或非数字),并将代码添加到带有当前日期和user_id的表中,然后将短信发送到用户的电话号码,并将用户重定向到可以输入代码的页面。当他输入代码时,您将其与数据库中的行进行比较并进行验证,拥有日期将使添加代码的超时变得很容易,这样用户就必须在60秒内或您希望的时间内输入代码。您必须将一个id发送到用户输入sms代码的页面,这样您才能知道他是哪个用户,当然,这应该根据表进行检查。使用这种方法可以很容易地跟踪用户进行的所有尝试。
一个建议是对用户每天/小时可以使用的短信数量进行限制。然后,他将被锁在外面一天剩下的时间,并将不得不明天再试一次。否则,拥有用户/通行证的人可能会发送数以千计的请求,并迫使您发送那么多短信,这会花费您很多钱。当然,这取决于您以某种方式将sms借记到用户帐户中。只是想提一下..。
https://stackoverflow.com/questions/37723989
复制相似问题