基于电话号码的移动应用程序的Devise身份validation

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

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

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

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

  • https://github.com/giano/devise_sms_activable
  • https://github.com/baranov-sv/devise_sms_confirmable
  • Rails注册用户使用电话号码和确认

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

[UPDATE]

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

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

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

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

  • 这个如何允许您使用电子邮件地址以外的其他字段登录和validation
  • 使用Rails 3和Devise的移动设备的简单令牌认证服务。

你可以使用之前的tuts和Twilio这样的东西来发送创建的自定义身份validation令牌,并使用电子邮件以外的电话号码validation用户身份。

[UPDATE]

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

我还发现了两个因素身份validationDevise扩展

[更新于2017年8月]

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

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

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

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

可能不是OP正在寻找的东西,但对于中国的Rails开发者来说,现在有一个叫做china_sms的gem,可以自动将各种中文短信发送服务集成到你的Rails应用程序中。 我会在这里添加它,以防任何人发现它有用。

https://github.com/saberma/china_sms

https://ruby-china.org/topics/12407