remote: "/valid_password.json"
送信されたパスワードが正しいものであるかどうかをサーバーで確認するために使用する検証には、jQuery Validation プラグインを使用します。問題は、サーバー上でパスワードが (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
2 つのputs
方法では、異なる結果が得られます。暗号化を正しく行うには、保存されている password_salt を使用する必要があると思いますが、方法がわかりません。もともと「username」に間違ったパラメーターを使用していましたが、現在は修正されています。