如何使用authlogic和jQuery验证插件验证密码?
我使用jQuery验证插件进行验证,使用如何使用authlogic和jQuery验证插件验证密码?,jquery,ruby-on-rails-3,jquery-plugins,authlogic,Jquery,Ruby On Rails 3,Jquery Plugins,Authlogic,我使用jQuery验证插件进行验证,使用remote:“/valid\u password.json”在服务器上检查提交的密码是否正确。问题是,在服务器上,密码是加密的(使用Authlogic),因此,当我将password参数与存储的密码进行比较时,它们并不相同。如何使用JQuery验证插件验证密码 以下是控制器中的代码: def valid_password username = params[:user_session][:username] password = para
remote:“/valid\u password.json”
在服务器上检查提交的密码是否正确。问题是,在服务器上,密码是加密的(使用Authlogic),因此,当我将password参数与存储的密码进行比较时,它们并不相同。如何使用JQuery验证插件验证密码
以下是控制器中的代码:
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
编辑:经过搜索和阅读,我尝试了以下方法:(仍然没有成功)
两种put
方法给出了不同的结果。我想我应该使用存储的密码来正确加密,但我不知道怎么做。最初我对“username”使用了错误的参数,但现在已经修复了。现在它可以工作了
在加密之前,我必须将密码添加到密码中:
def valid_password
username = params[:username]
password = params[:user_session][:password]
@user = User.find_by_username(username)
password = "#{password}#{@user.password_salt}"
@password = Authlogic::CryptoProviders::Sha512.encrypt(password)
if @password == @user.crypted_password
@password_ok = true
end
respond_to do |format|
format.json { render :json => @password_ok ? "true" : "false"}
end
end
为什么不尝试用AuthLogic加密发送的密码,然后比较加密版本?
def valid_password
username = params[:username]
password = params[:user_session][:password]
@user = User.find_by_username(username)
password = "#{password}#{@user.password_salt}"
@password = Authlogic::CryptoProviders::Sha512.encrypt(password)
if @password == @user.crypted_password
@password_ok = true
end
respond_to do |format|
format.json { render :json => @password_ok ? "true" : "false"}
end
end