我使用Devise gem进行身份验证。
如何检查params
数组中提交的密码是否有效?
我尝试将user.encrypted_password
的值与BCrypt::Password.create('password')
进行比较,但哈希值不同。
我可能需要像盐价这样的东西吗?
答案 0 :(得分:41)
只需使用devise的valid_password?方法,例如:
user.valid_password?('password123')
答案 1 :(得分:1)
您可以使用设计维基上的official solution:
user = User.find_for_authentication(email: params[:email])
user.valid_password?(params[:password])