我遇到密码验证问题。我正在使用Bcrypt 3来加密我的密码。 这是我尝试执行的基本操作:
@user = User.find_by(username: params[:username].downcase)
if @user && @user.authenticate(params[:password])
#valid
else
#invalid
end
我做了一些输出并找到了用户IS,并且传入的密码与原始密码匹配,但仍未通过。
我发现奇怪的两件事:我可以用@user.authenticate(params[:password])
替换@user.authenticate("mypassword")
并且它有效。我也可以在使用控制台时正确验证。
为什么我的控制器无法正常工作?