使用db:seed创建具有加密密码的用户

时间:2015-06-17 14:26:43

标签: ruby-on-rails

我正在使用rails制作我的第一个应用程序,只有用户登录且只有管理员可以创建用户才能访问此应用程序,因此当我的应用程序在线时,我需要至少一个管理员来创建另一个权限?

我尝试使用种子来创建用户,用户已经很好地创建但我无法使用它连接到我的应用程序,我认为这是加密密码的问题,这就是我所做的:

UserManager::User.create({ name: 'a', surname: 'a', email: 'a', active: true, id: 1, password_hash: 'a', password_salt: 'a'})

这是可能的,用种子创建用户是正确的吗?如果是如何加密种子中的密码?

2 个答案:

答案 0 :(得分:0)

我正在使用rails制作我的第一个应用程序,只有用户登录且只有管理员可以创建用户才能访问此应用程序,因此当我的应用程序在线时,我需要至少一个管理员来创建另一个权限?的

这是可能的,用种子创建用户是正确的吗? 这可能是一个值得商榷的问题,但只要您保护种子文件,这可能是一种合理的方法。您可能希望尽快更改密码和/或使用环境变量作为密码。无论您做什么,都不要使用明文,将您的管理员密码添加到您的git存储库,然后在生产中保持不变。

如果是如何加密种子中的密码呢? 您可能不应该明确加载password_hashpassword_salt等属性。相反,只需设置password(如果有的话,设置password_confirmation)。

答案 1 :(得分:0)

你应该跑步:

UserManager::User.create(name: 'a', surname: 'a', email: 'a', password: 'foobar123', password_confirmation: 'foobar123')

史蒂夫的其他答案回答了剩下的问题。