1
我使用jQuery Validation插件進行驗證,使用remote: "/valid_password.json"
在服務器上檢查提交的密碼是否正確。問題是在服務器上密碼被加密(使用Authlogic),所以當我比較密碼參數和存儲的密碼時,它們是不一樣的。我如何使用JQuery驗證插件驗證密碼?如何使用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來獲得加密權限,但我不知道如何。最初我使用了「用戶名」的錯誤參數,但現在已修復。
你爲什麼不嘗試加密你與AuthLogic發送,然後比較加密版本的密碼? – jmort253
我該怎麼做? –