【问题标题】:ActionController::InvalidAuthenticityToken in Devise::SessionsController#destroy设计中的 ActionController::InvalidAuthenticityToken::SessionsController#destroy
【发布时间】:2014-12-17 11:54:39
【问题描述】:

您好,我一直在互联网上搜索以解决此问题,但找不到解决方案。当我尝试销毁用户会话(以用户身份注销)时出现以下异常;

ActionController::InvalidAuthenticityToken in Devise::SessionsController#destroy

不是用户连续退出的情况。我尝试不使用 cookie 登录,并且能够登录,但每次尝试注销时都会抛出该异常。

我正在使用 Rails 4.1 和 Devise 3.4。任何形式的帮助将不胜感激。感谢所有出色的工作。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 devise


【解决方案1】:

由于 csrf 令牌过期或丢失,跨站点请求伪造失败。

修复 1:检查您的 是否显示在您的布局中。

你的布局应该有类似

<meta name="csrf-token" content="I+nZnT$#Twefelfjiself" />

或

修复 2:在 devise.rb 上,将“删除”更改为“获取”

config.sign_out_via = :get

然后根据你的观点将链接更改为

<%= link_to "logout", destroy_user_session_path, method: :get %>

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 2019-07-15
    • 2014-04-24
    • 1970-01-01
    • 2018-11-02
    • 2016-05-12
    • 2011-03-22
    • 2017-09-07
    • 2017-11-13
    相关资源
    最近更新 更多