设计:如何自定义重置密码令牌?

Posted

技术标签:

【中文标题】设计:如何自定义重置密码令牌?【英文标题】:Devise: How to customize reset password token? 【发布时间】:2020-07-13 09:23:26 【问题描述】:

需要创建 6 位重置密码令牌。

每个人都在共享以下代码,但没有人解释如何。

def set_reset_password_token
  raw, enc = Devise.token_generator.generate(self.class, :reset_password_token)

  self.reset_password_token   = enc
  self.reset_password_sent_at = Time.now.utc
  save(validate: false)
  raw
end

我需要 6 位代码,电子邮件模板中没有重定向 URL。

【问题讨论】:

【参考方案1】:

也许您需要设置密码而不是生成令牌。此代码的作用是设置令牌,然后用于创建重置密码链接。您可以做的是跳过设计并创建一个表单,您可以在其中收到电子邮件,然后在您的控制器中执行类似的操作

user.password = 'new password'
user.password_confirmation = 'new password'
user.save

然后使用 action-mailer 通过邮件发送此密码

【讨论】:

以上是关于设计:如何自定义重置密码令牌?的主要内容,如果未能解决你的问题,请参考以下文章

Parse Server 上的自定义重置密码系统

Firebase - 自定义重置密码登陆页面

laravel 5.0 中的自定义重置密码路由

创建自定义验证电子邮件页面 URL 和自定义重置密码页面 URL

如何检查密码重置令牌是不是已过期?

1.MySQL安装启动登录重置密码卸载