Google+通过登录按钮登录:无法在不同页面上保持会话,并显示登录/退出按钮

时间:2014-04-14 16:09:39

标签: javascript php session google-plus

我的页面/login.php显示登录按钮并为您登录。到目前为止,我已设法:

  • 在公共文件中包含相关代码,以便G +登录代码出现在所有页面中
  • 将内容从按钮元素本身移动到标题
  • 中的标记
  • 我没有在signinCallback中保留任何重要的逻辑,而是附加了一个在每个页面加载时调用的回调函数,如下所示:

    po.src =' https://apis.google.com/js/client:plusone.js?onload=OnLoadCallback';

  • 然后我让这个函数看起来像这样:

    function OnLoadCallback(){
        var sessionParams = {
            'client_id': 'myapp-id-here',
            'session_state': null
        }
        gapi.auth.checkSessionState(sessionParams, function(stateMatched){
            if(stateMatched === true){
                console.log("You do not seem to be logged in!");
            }else{
                console.log("You should be logged in!");
    
                // Trigger request to get the email address.
                gapi.client.load('plus','v1', loadProfile);
    
                if(window.location.pathname === '/login.php'){
                    toggleElement('signin-button');
                    window.location = "/";
                }
    
            }
        }); 
    }
    

我在一篇文章中找到了关于会话状态的这段代码,但我不确定它是否正常运行。在Chrome中似乎或多或少都可以,但在FF中,当我第一次尝试时,它应该给我"没有记录"在我的控制台中。由于我使用我的谷歌帐户登录了FF(但不在我的应用程序中!),它似乎认出我已登录,或者至少我的会话只是空的(如代码中所述)。

那么,我应该使用什么而不是" null"在确定会话状态时?

0 个答案:

没有答案