警告:无法验证CSRF令牌的真实性

时间:2017-02-28 19:49:55

标签: ruby-on-rails ssl devise

的信息: 我在开发方面。在http上运行端口3000。 在我的登录页面中,唯一的会话信息是=

:_csrf_token    "JISqEbDHAxteJM2E96/S/9iimgBLwVsLP37CpvIBo/A="

登录表单中包含以下隐藏元素:

<input name="authenticity_token" type="hidden" value="JISqEbDHAxteJM2E96/S/9iimgBLwVsLP37CpvIBo/A=">

所以CSRF似乎匹配。但是当我输入我的用户名和密码时,首先它会显示警告:无法验证CSRF令牌真实性然后在日志中我看到它更新了我的&#39; last_sign_in&#39;,这让我相信它成功登录。devise::sessionsController#create正在被召唤。

我确认的事情:

  1. app/views/layouts/application.html.erb中有<%= csrf_meta_tag %>
  2. jquery_ujs.js正在页面上加载,我相信将CSRF信息添加到任何jquery ajax请求中。
  3. 在问题出现的时候,我开始搞乱我的应用服务器。

1 个答案:

答案 0 :(得分:0)

这不是根本原因,但更高层次的原因是我没有使用SSL证书提供服务。不知何故,这导致它无法正常工作。一旦我将SSL而不是HTTP添加到我的开发应用程序中,它就会再次运行。任何人都知道为什么?