ActionController :: Devise中的InvalidAuthenticityToken :: SessionsController#destroy

时间:2014-10-22 04:56:21

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

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

ActionDetroller :: Devise中的InvalidAuthenticityToken :: SessionsController#destroy

用户不是连续注销的情况。我尝试登录时没有使用cookie,我可以登录,但每次我尝试注销时都会抛出异常。

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

1 个答案:

答案 0 :(得分:2)

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

修复1:检查您的<%= csrf_meta_tag%>在你的布局上显示。

您的布局应该具有类似

的内容
<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 %>