Rails - 一种不以电子邮件为中心的身份验证解决方案?(以短信为中心)
Rails - an authentication solution that is not email-centered?(SMS-centered instead)
似乎包括 devise
在内的各种流行的身份验证 gem 都是围绕电子邮件构建的。然而在一些发展中国家,很多用户根本不使用电子邮件,而更喜欢通过短信验证码进行验证。在 devise
中似乎可以允许用户使用电子邮件地址以外的其他内容登录。然而,用户是否也可以通过手机 phone 恢复 his/her 密码?(即只需通过 SMS 服务将新密码发送到 his/her phone)。
此外,https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-with-something-other-than-their-email-address 我不清楚我是否可以完全放弃注册表单中的电子邮件字段,或者只是不是强制性的,但是还在吗?
如果以上无法实现,那么有没有替代方案gem?我看到 gem 之类的 https://github.com/binarylogic/authlogic 似乎与方法无关。但我不确定是否更好的解决方案是只构建我自己的身份验证系统而不是使用任何 gem。我在 RailsGuide 上看到最好使用 gem 进行身份验证,但我不确定为什么。
谢谢!
如果您不习惯覆盖 devise
使用电子邮件进行身份验证的方式,我建议您实施自己的身份验证逻辑。要了解如何完成简单的身份验证,请查看 Micheal Hartl 的 book。使用 API 之类的 Twilio 将电子邮件确认替换为通过短信确认一次性密码或类似的东西。
如果您确定要使用 SMS 登录,我建议您放弃设计并推出自己的身份验证方法。
但是有几点需要考虑:
- 短信的送达率低于电子邮件。有
严格禁止自动短信政策的国家(例如印度)和
SMS 根本不起作用的国家(例如缅甸)
- 为了缓解上述问题,实现回退到语音(采取
看看 Nexmo 的 text to speech API)
- 谨记country specific restrictions
- 如果您发送大量短信,请将负载分散到多个号码上
- 用于安全存储密码
使用 has_secure_password
似乎包括 devise
在内的各种流行的身份验证 gem 都是围绕电子邮件构建的。然而在一些发展中国家,很多用户根本不使用电子邮件,而更喜欢通过短信验证码进行验证。在 devise
中似乎可以允许用户使用电子邮件地址以外的其他内容登录。然而,用户是否也可以通过手机 phone 恢复 his/her 密码?(即只需通过 SMS 服务将新密码发送到 his/her phone)。
此外,https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-with-something-other-than-their-email-address 我不清楚我是否可以完全放弃注册表单中的电子邮件字段,或者只是不是强制性的,但是还在吗?
如果以上无法实现,那么有没有替代方案gem?我看到 gem 之类的 https://github.com/binarylogic/authlogic 似乎与方法无关。但我不确定是否更好的解决方案是只构建我自己的身份验证系统而不是使用任何 gem。我在 RailsGuide 上看到最好使用 gem 进行身份验证,但我不确定为什么。
谢谢!
如果您不习惯覆盖 devise
使用电子邮件进行身份验证的方式,我建议您实施自己的身份验证逻辑。要了解如何完成简单的身份验证,请查看 Micheal Hartl 的 book。使用 API 之类的 Twilio 将电子邮件确认替换为通过短信确认一次性密码或类似的东西。
如果您确定要使用 SMS 登录,我建议您放弃设计并推出自己的身份验证方法。
但是有几点需要考虑:
- 短信的送达率低于电子邮件。有 严格禁止自动短信政策的国家(例如印度)和 SMS 根本不起作用的国家(例如缅甸)
- 为了缓解上述问题,实现回退到语音(采取 看看 Nexmo 的 text to speech API)
- 谨记country specific restrictions
- 如果您发送大量短信,请将负载分散到多个号码上
- 用于安全存储密码 使用 has_secure_password