Ich habe eine einzelne Seite app (unter https://duggout.com), die OAuth-Anmeldung mit Google & Facebook hat. Der Rückruf wird mit OAuth-Code an https://login.duggout.com gesendet. Es leitet zu https://duggout.com mit JWT-Token in der URL um. Ich bekomme ein Problem mit dem Rückruf von Facebook & Google. Der Rückruf wird zweimal ausgelöst, wobei der erste Anruf von Chrome abgebrochen wird. Siehe die identischen Anfragen unter:OmniAuth OAuth 2.0 Callback wird zweimal in Google Chrome ausgelöst
ich sehen kann sowohl die Anfragen von meinem Logs auch:
1.e Anfrage:
I, [2017-07-29T09:43:32.911199 #8062] INFO -- : [1663579f-41ea-4257-ab94-d51595154004] Started GET "/auth/facebook/callback?code=<OAUTH_CODE>&state=<OAUTH_STATE>" for 220.244.205.75 at 2017-07-29 09:43:32 +0000
302 to duggout.com with successful token
zweite Anfrage (1 Sekunde später):
I, [2017-07-29T09:43:33.548306 #8062] INFO -- : [908cd618-83c3-4c96-92b8-7496642a1903] Started GET "/auth/facebook/callback?code=<OAUTH_CODE>&state=<OAUTH_STATE>" for 220.244.205.75 at 2017-07-29 09:43:33 +0000
302 to failure URL
Die erste Anfrage ist erfolgreich und senden s 302 an den Browser. Da sie jedoch vom Browser abgebrochen wird, wird diese Antwort nicht verwendet. Die zweite Anforderung wird ungültig, da derselbe OAuth-Code bereits authentifiziert wurde.
Ich fand diese thread, die über das gleiche Problem aber vor 3 Jahren spricht.
Ich konnte nicht herausfinden, ob dies ein Problem mit Google Chrome oder OAuth-Konfiguration in Google & Facebook oder mit meinem Anwendungscode ist. Es funktioniert perfekt in Firefox. Firefox macht keine zwei Rückrufe.