如何播种加密密码

时间:2013-01-18 19:21:31

标签: ruby-on-rails devise

我将使用真实的人名和电子邮件地址为我的数据库播种,并邀请他们通过向数据库中的地址发送电子邮件来加入该网站,并返回该网站。如果我在网站上使用Devise的'database_authenticable',它会创建一个电子邮件列和一个加密密码列。但是,由于我只是用电子邮件播种数据库,而不是密码,我不确定这是否会产生问题。

我应该将密码栏留空吗?我应该创建一个虚拟密码并邀请他们进行更改吗?有什么建议?

在回答此问题时,请注意我在此网站上的用户名,并提供具有我的用户名(以及其他类似情报的人)所需的详细信息,以了解您的答案。先感谢您。

1 个答案:

答案 0 :(得分:0)

执行此类操作的最简单方法(无需与Devise本身混淆)是将密码设置为注册表单上的隐藏字段,并为每个人设置默认值(例如password123)

你需要运行

rails g devise:views

允许您自定义设计视图并将密码字段更改为隐藏字段。然后在您的用户模型中,指定要设置密码的内容,例如

before_validation: set_default_password

def set_default_password
    self.password = 'password123'
    self.password_confirmation = 'password123'
end

然后修改设计电子邮件以通知用户他们的密码是什么,并建议他们尽快更改密码。

注意:这当然不是最好的解决方案,但它可能是最简单的运行而不会弄乱Devise代码。

您可以查看的另一个选项是devise_invitable gem ...

https://github.com/scambra/devise_invitable

这允许您向用户发送电子邮件邀请,然后从那里设置密码。这可能不符合您的确切需求,但我认为值得一提。

相关的问题可以在这里找到....

Devise: Create User without Password then Require Password to Use Account?