我有一個單頁面應用程序(在https://duggout.com),OAuth使用Google登錄& Facebook。該回調使用OAuth代碼進入https://login.duggout.com。它在URL中重定向到帶有JWT令牌的https://duggout.com。OmniAuth OAuth 2.0回調在Google Chrome中觸發兩次
我收到來自Facebook的回撥& Google的問題。該回調會被第二次觸發,並被Chrome取消。請參見下面的相同的請求:
第一請求:
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
第二請求(1秒後):
我可以看到無論是從自己的日誌以及請求
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
第一個請求成功併發送s 302到瀏覽器。但是,因爲它被瀏覽器取消,所以沒有使用該響應。由於已經驗證了相同的OAuth代碼,第二個請求變爲無效。
我發現這thread,談論同樣的問題,但3年前。
我無法弄清楚這是Google Chrome或OAuth配置在Google & Facebook或我的應用程序代碼中的問題。它在Firefox中完美運行。 Firefox不做兩個回調。