首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我尝试通过ajax进行身份验证时,Warden策略中的参数为空

当我尝试通过ajax进行身份验证时,Warden策略中的参数为空
EN

Stack Overflow用户
提问于 2012-06-14 22:15:49
回答 1查看 824关注 0票数 2

我正在尝试在我的rails应用程序中使用Warden进行身份验证。如果我通过POST请求以常规形式使用它,它工作得很好。但是当我将它移动到Backbone.js时,我发现了身份验证!方法总是调用我失败的应用程序。

我在authenticate里面放了一些日志!方法,并发现params hash为空。就像这样:

代码语言:javascript
复制
def authenticate!
    Rails.logger.debug "Parameters inside of Warden: #{params}"
    user = User.find_by_email(params['email'])
    if user && user.authenticate(params['password'])
      success! user
    else
      fail "Invalid email #{request.params['email']} or password #{request.params['password']}!"
    end
end

它生成一个空输出:Warden中的参数:{}

同时,我可以在控制器中看到env‘’warden‘之前的params。.authenticate!是调用的。我只能猜测我的参数去哪里了。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2012-06-15 06:17:42

我是Rails的新手,所以我的解决方案可能很简单。但由于我没有找到任何与它相关的东西,它可能对某些人有用。

重点是Warden实例化Rack::请求以获得对params散列的访问。它只支持'application/x-www-form-urlencoded‘和'multipart/form-data’。http://rack.rubyforge.org/doc/classes/Rack/Request.html#M000275

可能在控制器中使用了不同的解析器,这就是我感到困惑的原因。最后,我用基于机架的外部解析器https://github.com/achiu/rack-parser修复了这个问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11035011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档