基于电话号码的移动应用的Devise身份验证

Vla*_*lad 15 authentication ruby-on-rails devise twilio ruby-on-rails-4

我们都知道Devise是在基于rails的应用程序上实现身份验证的事实标准.

默认情况下,它使用电子邮件作为ID,但也允许您使用用户名.它还具有"可确认"模块,您可以通过发送电子邮件并单击链接来验证电子邮件来确认电子邮件地址.

我正在寻找类似的电话号码 - 基本上接受电话号码作为主要ID而不是电子邮件,然后通过像Twilio这样的用户的号码发送作为短信的验证码来确认电话号码,然后让用户通过输入代码确认它(甚至让用户点击生成的链接来验证就像他们对电子邮件一样进行验证)

我之所以希望有一个流行的设计模块用于此功能,是因为它似乎大多数移动社交应用程序接受电话号码并确认现在的数字.必须有人认为这是一个问题,并为此开源了一个模块.但是我找不到任何受欢迎的.实际上,确切地说,这里是我发现的唯一三个相关链接:

它们都没有导致工作解决方案(我已经尝试过devise_sms_activable但它不适用于rails 4,而且我对低数量的星星很警惕)所以我想问一下是否有任何可行的解决方案.我错过了什么吗?这个主题是在Devise开发者社区中提出的吗?我对解决方案很好奇,但如果没有,我至少会理解为什么这个问题不容易获得.

[UPDATE]

我认为这个问题可能有点误导.虽然我可以自己制作它,但我不喜欢重新发明轮子.基本上我对这个问题的意图是:

  1. 如果有任何包这样做(就像所有模块,如确认,token_authentcatable等等.也许甚至不是一个Devise模块,它可能完全是另一回事)
  2. 或者,如果没有这样的预先构建的解决方案,为什么没有这样的解决方案.我无法理解为什么没有这样的解决方案,当每个人都这样做时我都能找到.

当我得到#1或#2的回答时,我会很乐意接受.谢谢!

a14*_*14m 13

我之前已经研究过了......但是项目要求发生了变化......所以以下所有内容都是在设计维基上找到的相关链接

您可以将之前的内容与Twilio之类的内容结合使用,以发送创建的自定义身份验证令牌,并使用电子邮件以外的电话号码对用户进行身份验证.

[UPDATE]

既然你提到了一个已经有效的解决方案,我想这就是你要找的.Active Model OTP这篇博客发布它是新的,我没有机会试驾它:D

我还发现了两个因素身份验证Devise扩展

[更新于2017年8月]

根据我最近开展的一个项目,我发现Tinfoil/devise-two-factor提供了一个非常好/可扩展的设计集成(并且可以高度定制)...使用内部ROTP gem,你可以提供不同的长度基于不同认证方法(APP/SMS)的代码和每种方法允许的不同窗口/漂移,而无需从头开始编写整个事物.(如果您希望在复杂的工作流程中获得全部功

  • 第二个子弹链接现在似乎已被破坏 (2认同)

Vla*_*lad 8

我是OP,因为我问了这个问题,我遇到了一个叫做active_model_opt的宝石 https://github.com/heapsource/active_model_otp

这个宝石并不是一个设计插件,但它完全符合我的要求.基本上,通过将其添加到您的用户模型,它会生成一段时间密码,该密码在一定时间内有效.它甚至还具有使用一次性密码"验证"的内置功能.

无论如何,我希望任何偶然发现这个问题的人都会觉得这个答案很有用.