我有一个单页面应用程序(在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不做两个回调。