我使用 jQuery Validation 插件进行验证,remote: "/valid_password.json"
用于检查服务器上提交的密码是否正确。问题是在服务器上密码是加密的(使用 Authlogic),所以当我将密码参数与存储的密码进行比较时,它们并不相同。如何使用 JQuery Validation 插件验证密码?
这是控制器中的代码:
def valid_password
username = params[:user_session][:username]
password = params[:user_session][:password]
@user = User.find_by_username(username)
if @user.password == password
@password_ok = true
end
respond_to do |format|
format.json { render :json => @password_ok ? "true" : "false"}
end
end
编辑:搜索和阅读后,我试过这个:(仍然没有成功)
def valid_password
username = params[:username]
password = params[:user_session][:password]
@user = User.find_by_username(username)
puts "TEST" + @user.crypted_password
@password = Authlogic::CryptoProviders::Sha512.encrypt(password)
puts "TEST" + @password
if @password == @user.crypted_password
@password_ok = true
end
respond_to do |format|
format.json { render :json => @password_ok ? "true" : "false"}
end
end
两种puts
方法给出不同的结果。我想我应该使用存储的 password_salt 来正确加密,但我不知道怎么做。最初我为“用户名”使用了错误的参数,但现在已修复。