I-a*_*ser 5 ruby ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-4
嗨我已经使用设计进行身份验证,并且在其中进行了一些更改,例如我已使用电子邮件和手机号码提供登录.参考此链接.
这是我的代码
def self.find_for_database_authentication(conditions={})
find_by(mobile_number: conditions[:email]) || find_by(email: conditions[:email])
end
Run Code Online (Sandbox Code Playgroud)
我使用可确认模块发送确认说明,他们的电子邮件工作正常.
现在,如果用户没有输入此电子邮件(只输入手机号码),那么他必须发送短信(短信中的确认指令).
所以我有疑虑
How can I achieve this functionality?How can I generate the same confirmation link for the same.编辑(我试过以下解决方案来生成确认链接)
因为我也必须在SMS中发送确认链接,所以我尝试使用以下方法生成给定的链接
http://localhost:3000/admin_users/confirmation?confirmation_token=#{@user.confirmation_token}"
Run Code Online (Sandbox Code Playgroud)
它会生成以下类型的链接
http://localhost:3000/admin_users/confirmation?confirmation_token=00b2880c9662c65dc6d276db08532ea42d4333e6b7d2357d036cb9233eed41e8
Run Code Online (Sandbox Code Playgroud)
当我累了使用这个链接时,它给我确认令牌无效错误.搜索后我发现了这个.那么如何在设计范围外生成确认链接.
nbe*_*ezs -1
至于通过短信发送说明,如果您想设置服务器,您可能需要查看tropo服务或restcomm 。Tropo 特别容易使用,您需要支付少量押金(例如 10 美元)才能启用短信发送功能。
关于 url 的生成,您可能需要创建一个控制器来扩展Devise::ConfirmationsController并重写该create方法,以添加逻辑来检查电子邮件或电话号码是否存在并做出正确反应。