joshm
(Josh)
26. März 2019 um 12:43
1
Hi!
My users cannot log in with Facebook anymore. This is the error log:
(facebook) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
I’m using Cloudflare in front of nginx. I’m using Cloudflare automatic SSL (flexible). I didn’t install any certificate on my server (i.e. I’m not using Letsencrypt).
Is this related to Cloudflare? Can this be solved without installing Letsencrypt?
Thanks!
This error is similar both for Google and Facebook. In my configuration there was a line in nginx:
# proxy_set_header X-Forwarded-Proto $https;
After I changed it to
proxy_set_header X-Forwarded-Proto $scheme;
the error has gone.
Solution was found after reading this topic: Redirect URI mismatch in Google Auth
2 „Gefällt mir“
Ich muss meine Antwort verbessern.
Nachdem ich mit der FB- und Google-Authentifizierung herumgespielt habe, bleibe ich aufgrund der Unternehmensrichtlinien bei der Office365-Anmeldung.
Als ich meinen Discourse-Server hinter einen Proxy (siehe Bild unten) verschoben habe, wurde die O365-Authentifizierung unmöglich. Sie benötigt force https, was hinter dem Proxy nicht funktioniert. Glücklicherweise von Daniel gelöst: Moved site behind proxy, favicon and header not using https anymore - #11 by rossierd .
Die Zeile in der internen Nginx-Konfiguration
proxy_set_header X-Forwarded-Proto $scheme;
sollte ersetzt werden durch
proxy_set_header X-Forwarded-Proto "https";
Externes Nginx benötigt keine solche Änderung. Es hat:
proxy_set_header X-Forwarded-Proto $scheme;
Wahrscheinlich gilt dasselbe für FB-, Google- und andere Arten der Authentifizierung.
P.S.
Offensichtlich enthielt diese Zeichenkette einen Tippfehler $, und war nutzlos.
1 „Gefällt mir“