Rails——一个不以电子邮件为中心的身份验证解决方案?(以短信为中心)



似乎包括devise在内的各种流行的身份验证宝石都是围绕电子邮件构建的。然而,在一些发展中国家,许多用户根本不使用电子邮件,而是更喜欢通过短信验证码进行验证。在devise中,似乎可以允许用户使用电子邮件地址以外的其他内容登录。然而,用户是否也可以通过手机恢复密码?(即,仅通过SMS服务将新密码发送到他/她的手机)。

此外,我还不清楚https://github.com/plataformatec/devise/wiki/How-To:-允许用户使用电子邮件地址以外的其他内容登录,我是否可以完全放弃注册表单中的电子邮件字段,或者只是将其设置为而不是强制性,但仍然存在?

如果无法实现上述目标,那么是否有其他gem解决方案可用?我看到的宝石像https://github.com/binarylogic/authlogic似乎是方法不可知论者。但我不确定更好的解决方案是否是只构建自己的身份验证系统,而不是使用任何gem。我在RailsGuide上看到,最好使用gem进行身份验证,但我不太清楚为什么。

谢谢!

如果您确定要使用SMS登录,我建议您放弃设计并推出自己的身份验证方法。

然而,有一些事情需要考虑:

  1. 短信的发送能力低于电子邮件。有有严格的无自动短信政策的国家(如印度)和短信根本不起作用的国家(例如缅甸)
  2. 为了缓解上述问题,实现回退到语音(采取看看Nexmo的文本到语音API)
  3. 请记住特定国家的限制
  4. 如果你发送了很多短信,请将负载分散到多个号码上
  5. 用于安全存储密码使用has_secure_password

如果您对使用电子邮件进行身份验证的devise方式不满意,我建议您实现自己的身份验证逻辑。要了解如何进行简单的身份验证,请参阅Micheal Hartl的这本书。用短信一次性密码或类似使用Twilio这样的API的方式来代替电子邮件确认。

相关内容

最新更新