【问题标题】:Phone number based Devise authentication for mobile apps [closed]基于电话号码的移动应用程序设计身份验证[关闭]
【发布时间】:2017-09-01 21:35:37
【问题描述】:

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

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

我一直在寻找与电话号码类似的东西——基本上接受电话号码作为主要 ID 而不是电子邮件,然后通过 Twilio 之类的东西将身份验证码作为 SMS 消息发送到用户的号码来确认电话号码,然后让用户通过输入代码来确认(或者甚至让用户点击生成的链接进行验证,就像他们处理电子邮件一样)

我期待这个功能会有一个流行的设计模块的原因是因为现在似乎大多数移动社交应用程序都接受电话号码并确认号码。一定有人认为这是一个问题并为此开源了一个模块。但是我找不到任何流行的。实际上,准确地说,这是我在此找到的仅有的三个相关链接:

它们都没有导致可行的解决方案(我尝试过 devise_sms_activable,但它不适用于 rails 4,而且我对星数太少持谨慎态度)所以我想问一下是否有任何可行的解决方案这个。我错过了什么吗?是否在 Devise 开发者社区中提出了这个话题?我对解决方案很好奇,但如果没有,我至少会感谢任何关于为什么这不是现成的答案。

[更新]

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

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

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

【问题讨论】:

  • 你检查过配置文件吗?我可能错了,但我认为这就像更改身份验证密钥一样简单。这是一个示例配置文件,搜索电子邮件,其中大部分地方都可以替换为电话号码github.com/plataformatec/devise/blob/…
  • 你能提供一个来源吗?我不确定它怎么能这么简单,因为发送 SMS 不是内置在 rails 中的,需要使用 Twilio 等。
  • @Vlad 我已经更新了我在你更新问题后写的答案,检查一下。

标签: ruby-on-rails authentication ruby-on-rails-4 devise twilio


【解决方案1】:

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

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

[更新]

由于您提到了一个已经有效的解决方案,我认为这就是您正在寻找的。 Active Model OTPthis blog post 这是新的,我没有机会试驾:D

我还找到了Two factor authentication Devise extension

[2017 年 8 月更新]

基于我最近从事的一个项目,我发现Tinfoil/devise-two-factor 提供了与设计的非常好的/可扩展的集成(并且是高度可定制的)...使用内部 ROTP gem,您可以提供不同长度的代码基于不同的身份验证方法(APP/SMS)和每个方法允许的不同窗口/漂移,而无需从头开始编写整个事情。 (如果您想完全掌控复杂的工作流程,强烈推荐)

【讨论】:

  • 不错的发现。感谢那。 :)
  • 第二个项目符号链接现在似乎已断开
  • 谢谢,我会删除它...
【解决方案2】:

我是 OP,自从我问了这个问题后,我遇到了一个名为 active_model_opt https://github.com/heapsource/active_model_otp 的 gem

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

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

【讨论】:

    【解决方案3】:

    可能不完全是 OP 想要的,但是对于中国的 Rails 开发人员,现在有一个名为 china_sms 的 gem,它自动将各种中文短信发送服务集成到您的 Rails 应用程序中。我将在此处添加它以防有人发现它有用。

    https://github.com/saberma/china_sms

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      相关资源
      最近更新 更多