Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用authlogic和jQuery验证插件验证密码?_Jquery_Ruby On Rails 3_Jquery Plugins_Authlogic - Fatal编程技术网

如何使用authlogic和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

我使用jQuery验证插件进行验证,使用
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