2017-07-29 71 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