设计InvalidAuthenticityToken

时间:2017-12-11 17:31:05

标签: ruby-on-rails ruby authentication devise csrf-protection

我正在尝试使用设计创建一个身份验证系统。当我尝试使用post请求登录时,没有ajax,它会给我“ActionController :: InvalidAuthenticityToken”错误。

我已经看到这应该是设计的常见错误。我已经看到了一些常用的方法,这对我不起作用:

  • 要在html上包含csrf令牌:它已包含在登录站点中
  • 包括这样的hackish解决方案:skip_before_action:verify_authenticity_token,if: - > {controller_name.include? '会话'} 。不幸的是,这并没有改变一件事。在原始解决方案中,我看到它建议将其包含在Users :: SessionsController中。我可以在这个控制器中更改我喜欢的任何内容,甚至删除整个控制器,它仍然可以正常工作。

这应该是根据其他来源防止伪造的问题,但我可以从应用程序控制器中逐字删除它,我仍然有同样的错误。

class ApplicationController < ActionController::Base
  # protect_from_forgery with: :exception
end 

我相信Devise会独立于我的应用程序的其余部分检查令牌。这也可以解释为什么即使在登录表单中有令牌,它也不起作用。我不知道该怎么办。

0 个答案:

没有答案