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!
Dieser Fehler tritt sowohl bei Google als auch bei Facebook ähnlich auf. In meiner Konfiguration befand sich folgende Zeile in nginx:
# proxy_set_header X-Forwarded-Proto $https;
Nachdem ich sie in
proxy_set_header X-Forwarded-Proto $scheme;
geändert habe, ist der Fehler verschwunden.
Die Lösung wurde nach dem Lesen dieses Themas gefunden: Redirect URI mismatch in Google Auth
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.