【问题标题】:Automatically set password for user - Devise自动为用户设置密码 - 设计
【发布时间】:2015-04-08 13:05:03
【问题描述】:

Following this tutorial,我用设计设置了一个简单的注册系统,用户输入他们的电子邮件地址,他们会收到一封确认电子邮件,他们点击它,它会将他们带到一个表单,他们必须输入他们的密码和完成注册。

如何跳过该密码表单,以便在用户单击其电子邮件中的确认链接后,创建他们的帐户?如何自动为所有用户设置简单密码?

【问题讨论】:

  • 我会在您的 User 模型中添加一个 after_create 挂钩来设置默认密码。但至于跳过密码输入,我不确定。

标签: ruby-on-rails devise devise-confirmable


【解决方案1】:

在您的用户模型中创建一个方法来使用它而不是 create 方法。我们就叫它create_with_password

def self.create_with_password(attr={})
   generated_password = attr[:first_name] + "123"
   self.create(attr.merge(password: generated_password, password_confirmation: generated_password))
end

覆盖设计的注册控制器以使用您的新方法,该方法使用您的用户模型中的first_name 属性生成设计password 和password_confirmation 的两个必要字段,然后123 就像John123 中一样

在您的参数被清理后在您的控制器中。你应该打电话给User.create_with_password(user_params)

【讨论】:

  • 其实生成密码最好使用generated_password = Devise.friendly_token.first(8)
  • 我个人想用xkpassword生成一些对内存更友好的强熵密码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 2014-05-22
  • 1970-01-01
  • 2017-04-12
  • 2013-10-20
  • 2018-06-18
相关资源
最近更新 更多