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

Posted

技术标签:

【中文标题】警告:无法验证 CSRF 令牌的真实性【英文标题】:WARNING: Can't verify CSRF token authenticity 【发布时间】:2017-07-19 22:37:52 【问题描述】:

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

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

登录表单有这个隐藏元素:

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

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

我已经确认的事情:

    app/views/layouts/application.html.erb 里面有 &lt;%= csrf_meta_tag %&gt; jquery_ujs.js 正在页面上加载,我相信这会将 CSRF 信息添加到任何 jquery ajax 请求中。

在这个问题出现的时候,我开始弄乱我的应用程序服务器。

【问题讨论】:

【参考方案1】:

这不是根本原因,但更高级的原因是我没有使用 SSL 证书来提供它。不知何故,这导致它不起作用。一旦我将 SSL 而不是 HTTP 添加到我的开发应用程序中,它就会再次起作用。有人知道为什么吗?

【讨论】:

以上是关于警告:无法验证 CSRF 令牌的真实性的主要内容,如果未能解决你的问题,请参考以下文章

“警告:无法验证 CSRF 令牌真实性”错误 - 带有 Devise 和 :token_authenticable 的 CORS

基本 .ajax 发布到 rails 3.2.2 脚手架,生成“警告:无法验证 CSRF 令牌真实性”

Rails 3:无法验证 CSRF 令牌的真实性

角度注销后无法验证 CSRF 令牌的真实性

无法验证 CSRF 令牌真实性 Rails 4.1

Rails post 无法验证 CSRF 令牌的真实性