15

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

我尝试比较 with 的值,user.encrypted_passwordBCrypt::Password.create('password')哈希值不同。

可能我需要盐值之类的东西吗?

4

2 回答 2

43

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

user.valid_password?('password123')
于 2013-07-05T23:31:46.793 回答
1

来自设计维基

您可以使用设计 wiki 上的官方解决方案:

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

Rails 4+ with Strong Params的详细答案

于 2017-02-04T22:45:44.723 回答