设计密码检查

时间:2013-07-05 22:12:00

标签: ruby-on-rails devise

我使用Devise gem进行身份验证。 如何检查params数组中提交的密码是否有效?

我尝试将user.encrypted_password的值与BCrypt::Password.create('password')进行比较,但哈希值不同。

我可能需要像盐价这样的东西吗?

2 个答案:

答案 0 :(得分:41)

只需使用devise的valid_password?方法,例如:

user.valid_password?('password123')

答案 1 :(得分:1)

来自Devise Wiki

您可以使用设计维基上的official solution

user = User.find_for_authentication(email: params[:email])
user.valid_password?(params[:password])

Detailed answer for Rails 4+ with Strong Params