2017-07-29 75 views
0

我有一個單頁面應用程序(在https://duggout.com),OAuth使用Google登錄& Facebook。該回調使用OAuth代碼進入https://login.duggout.com。它在URL中重定向到帶有JWT令牌的https://duggout.comOmniAuth 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秒後):

omniauth oauth callback twice

我可以看到無論是從自己的日誌以及請求

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不做兩個回調。

回答

0

我剛剛發現這與Chrome插件有關:Hola代理。刪除插件後,第一個回叫請求不再取消。感謝SO answer