Internet explorer 谷歌+;登录始终在Chrome中工作,但在IE和FF中超时失败

Internet explorer 谷歌+;登录始终在Chrome中工作,但在IE和FF中超时失败,internet-explorer,google-chrome,firefox,google-plus,google-oauth,Internet Explorer,Google Chrome,Firefox,Google Plus,Google Oauth,我已经在我的网站上实现了Google+登录,但成功有限。在初始授权时,据我所知,登录流工作正常(我不确定对Google的double-GET请求是否正常,但身份验证工作正常)。在immediate\u失败后,我单击了登录按钮,Google返回了一个带有OAuth令牌、一次性使用代码等的对象。在继续之前,我应该澄清,记录的对象只是Google返回的authResult 然而,在一段不确定的时间(但不到OAuth令牌的小时数)之后,通常在我至少签入和签出一次以验证它是否有效之后,FF开始出现异常行

我已经在我的网站上实现了Google+登录,但成功有限。在初始授权时,据我所知,登录流工作正常(我不确定对Google的double-GET请求是否正常,但身份验证工作正常)。在
immediate\u失败后
,我单击了登录按钮,Google返回了一个带有OAuth令牌、一次性使用代码等的对象。在继续之前,我应该澄清,记录的对象只是Google返回的
authResult

然而,在一段不确定的时间(但不到OAuth令牌的小时数)之后,通常在我至少签入和签出一次以验证它是否有效之后,FF开始出现异常行为。以下错误在登录一段时间后发生(不确定在我注销时是否仍会发生)

无论我做什么,无论是登录还是注销,Google都会始终返回
error=“user\u signed\u out”
对象(并调用我的回调函数两次)。如您所见,单击登录按钮后,Google确实给了我一个成功的对象,但立即返回一个不成功的对象

这种情况一直持续到我撤销对谷歌端的访问并重新授权我的应用程序。冲洗并重复,不要失败。然而,Chrome并非如此。每次我进行测试时,Google都会返回一个成功的对象,当然,除非我已注销。IE是一个有趣的例子:它调用我的回调两次,就像在FF中一样,每次调用都返回相同的
error=“user\u signed\u”
。当我点击“登录”按钮时,IE从Google接收到一个成功的对象(单数),不再输出任何内容,但页面刷新会使一切恢复正常

现在,一些代码示例。也许我忽略了什么

插入“我的页面”的页眉:

function signinCallback(authResult) {
    console.log(authResult);  // The thing that's outputting all the unfortunate debugging data
    if(authResult['status']['signed_in'])   {
        $.ajax({
            data:   {
                code: authResult['code']
            },
            type: "POST",
            url:"/authentication/gplus"
        }).done(function()  {
            // Hide the button, change the menu, etc.
            //window.setTimeout(logout(), authResult['expires_in']*1000);  
            // ^ Auto-logout.  Attempt to test if errors were from invalid OAuth tokens, but not the case.  Is, in fact, broken, as the logout function is called immediately (don't know why).
        });
    }   else    {
        // Show the button, menu, etc.
    }
}

function logout()   { // Call logout script back on the server to unset session variables
    $.ajax({
        url:"/authentication/gplus/logout"
    });
    gapi.auth.logout();
}
位于
/authentication/gplus
的PHP很大程度上遵循了用于PHP的Google API客户端库中的示例。它相当长,我相信它与这个问题无关,因为错误在javascript中(我在没有PHP的情况下测试了应用程序,同样的问题仍然存在),所以我不会发布它

我的脚本包含的内容与显示的内容完全相同,而且,我认为这与我的问题无关。我的符号按钮的渲染方式与此类似

我希望我的问题很清楚。什么?Chrome是可以工作的(毕竟这是一个愚蠢的过程),但FF和IE的$^&@是怎么回事呢?这是我的问题,还是谷歌的问题(我怀疑我,但不确定)?也有类似的问题,但这似乎是其中许多问题的集合,我发现的问题要么没有答案,要么解决方案对我不起作用


如果你已经读到这里,特别感谢你抽出时间。很抱歉,我的问题太长了,但我想说清楚。

当我收到每个浏览器的不同回复时,我应该早点尝试,但是。。。出于某种原因,饼干把事情搞砸了。我在FF上清理了我的饼干,一切都开始工作了。我不知道为什么会出现这种情况,也不知道是哪些浏览器出了问题,但现在一切似乎都正常了。

如果不从其他浏览器交替登录,您会遇到这种情况吗?或者,只有当您在登录到其他浏览器后从其中一个浏览器登录时,才会发生这种情况?假设您询问我在多个浏览器中登录该网站时是否发生错误。不,因为我在FF做主要测试。一旦我注意到错误,我将在其他浏览器中测试它,到那时,我已经根据谷歌的说法“注销”。谢谢,@Will。这推翻了我唯一的假设。那么,我将把这个问题留给这个问题的专家们来回答。不过,这是一个很好的观点。我重新核实了,没有变化。