使用 SMS 或电子邮件发送设计确认说明

Posted

技术标签:

【中文标题】使用 SMS 或电子邮件发送设计确认说明【英文标题】:Send devise confirmation instructions using SMS or email 【发布时间】:2016-01-09 13:06:26 【问题描述】:

您好,我已将 devise 用于身份验证目的,并对其进行了一些更改,例如我提供了使用电子邮件和手机号码登录。裁判this link。

这是我的代码

def self.find_for_database_authentication(conditions=)
    find_by(mobile_number: conditions[:email]) || find_by(email: conditions[:email])
  end

我正在使用 confirmable 模块来发送确认说明,并且它们在电子邮件中运行良好。

现在如果用户不输入这封邮件(只输入手机号码),那么他必须发送短信(短信中的确认指令)

所以我有以下疑问

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"

它生成以下类型的链接

http://localhost:3000/admin_users/confirmation?confirmation_token=00b2880c9662c65dc6d276db08532ea42d4333e6b7d2357d036cb9233eed41e8 

当我厌倦了使用此链接时,它会给我 确认令牌无效 错误。经过搜索,我找到了this。那么如何在设计范围之外生成确认链接。

【问题讨论】:

【参考方案1】:

至于通过 SMS 发送说明,您可能需要查看tropo 服务或restcomm,如果您想设置您的服务器。 Tropo 特别好用,您需要支付少量押金(例如 10 美元)才能启用 SMS 发送功能。

关于 url 的生成,您可能必须创建一个扩展 Devise::ConfirmationsController 的控制器并覆盖 create 方法以添加逻辑以检查电子邮件或电话号码是否存在并做出正确反应。

【讨论】:

以上是关于使用 SMS 或电子邮件发送设计确认说明的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何使用MAIL函数发邮件

如何使用腾讯企业邮箱发送会员注册验证邮件

设计 - 在不发送电子邮件的情况下创建已确认的用户帐户?

使用设计跳过开发中的确认电子邮件

a标签实现一键拨号发短信发邮件发起QQ会话

python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇下(详解)