【问题标题】:AJAX call log out my accountAJAX 调用注销我的帐户
【发布时间】:2013-10-07 03:59:07
【问题描述】:

我有一个 Rails 3 应用程序,我正在使用 Warden 进行身份验证。 它工作正常,但是当我尝试使用 AJAX(POST) 访问控制器之一时,应用程序会注销我的帐户并要求我再次登录。

【问题讨论】:

  • 有多种原因,但对于初学者,您可以检查您的应用程序布局中是否存在 。

标签: ruby-on-rails ajax warden


【解决方案1】:

这是因为 rails CSRF 令牌验证。有几种不同的方法可以解决这个问题:

  1. Hacky,肮脏的快捷方式 - 只需让 AJAX 调用使用 HTTP GET 而不是 POST。 GET 默认不会查找 CSRF 令牌
  2. 另一个肮脏的快捷方式 - 在控制器中关闭此特定操作的 CSRF 验证

    protect_from_forgery :except => :create
    
  3. 使用 AJAX 调用正确实现 CSRF 令牌,那里有很多指南,例如 this onethis one

【讨论】:

  • 绝对不建议不使用 CSRF 令牌,这将是一个很大的安全漏洞..
猜你喜欢
  • 2020-08-15
  • 2013-04-18
  • 2019-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2018-11-22
  • 1970-01-01
  • 2012-02-29
相关资源
最近更新 更多