has_secure_password不加密password_digest Ruby on Rails

时间:2014-11-08 16:15:26

标签: ruby-on-rails encryption

我已经评论了我的模型中的所有内容,除了:

has_secure_password

我的迁移已添加:

t.string "password_digest"

到我的用户数据库。

当我在rails控制台中创建用户并尝试保存时,密码不会加密。它在我的数据库中显示为我输入的密码。有人可以告诉我如何让has_secure_password加密我的密码?我错过了一些简单的事吗?我安装了bcrypt gem。

4 个答案:

答案 0 :(得分:8)

是。对于那些来自这篇文章并且不太确定你的意思的其他人。

您没有为 password_digest

指定密码

您将其指定为密码

has_secure_password 添加到模型后,它会自动添加名为密码虚拟属性。为密码分配值时,它将加密并保存到 password_digest

答案 1 :(得分:0)

解答:我需要使用虚拟密码属性而不是密码_digest属性

答案 2 :(得分:0)

如果有其他人带着不同的问题来到这里。我们试图将它与ember(àlahttp://www.thegreatcodeadventure.com/jwt-authentication-with-rails-ember-part-i-rails-knock/)一起使用,我们的问题(与上面指出的回答者几乎相同)我们将passwordDigest添加到我们的ember数据模型中(所以我们基本上分配给password_digest而不是password,但是ember数据代表我们这样做,所以我们最初没有从上面的答案中意识到这一点。)

答案 3 :(得分:0)

t.string :password_digest可能回滚您的迁移并将其放置在迁移文件中。我希望这有帮助。