[HELP] Cannot login, error shows "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

3 Likes

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

3 Likes

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

3 Likes

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

1 Like

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

5 Likes

Same happens to me after a clean install AND a (successful) restoration from an old backup - BAD CSRF.

I’m not using any proxies. However, I’m accessing the website with using a local entry in my /etc/hosts.

And does the problem go away if the server is correctly referenced within public DNS?

I don’t know - I temporarily restored an old form on a VPS to extract some information from it.

If the lack of public DNS records is the cause, is there any workaround?