【帮助】无法登录,错误显示“BAD CSRF”

Hello,

Thank you @sam, the reverse proxy change you suggested worked. I don’t know why my test without it did not reveal it was a proxy problem, or what caused it to appear, but the change worked !

Regards,

Stephane

When we have reinstalled discourse it worked for two days and now we have same problem. It happens with a proxy and without the proxy. User cannot login/post/like/register or anything.
We have updated and rebuild discourse many times and will not work. pls help

As stated above, it’s almost certainly the wrong proxy header, if you are on HTTPS. You could try turning off HTTPS.

@codinghorror we haven’t HTTPS enabled

same here:

updated discourse+plugins yesterday.

today users reported login to discourse not possible - already logged in sessions are working fine.

showing login error: “unbekannter fehler / unknown error”
browser console: “BAD CSRF” and some javascript

fix:
add this to nginx config:

proxy_set_header X-Forwarded-Proto https;

best regards,
daniel

If you have http and the site setting force_https, expect a bad time

No, we only use https.
it’s all back working again.

For what it’s worth, the recent upgrade broke things for us also, in exactly the same way. We have a strictly https-only set of subdomains, and an apache reverse-proxy.

The configuration directive in apache equivalent to the nginx advice above is:

RequestHeader set X-Forwarded-Proto "https"

Cheers

我也遇到了同样的问题,无论是在全新安装后,还是从旧备份成功恢复后——存在严重的 CSRF 问题。

我没有使用任何代理。不过,我是通过在 /etc/hosts 中添加本地条目来访问该网站的。

如果服务器在公共 DNS 中正确引用,问题是否会消失?

我不确定——我暂时在一台 VPS 上恢复了一个旧表单,以从中提取一些信息。

如果缺少公共 DNS 记录是原因,有什么变通方法吗?