自动登录Google触发器

时间:2017-01-24 13:30:17

标签: javascript google-login

我在我的网站上登录google,除了一件事情以外,它正常工作。如果我在浏览器中登录了我的Gmail帐户,登录脚本也会自动登录我的网站。尽管成功执行了注销功能,但渲染的按钮仍然显示" Signed In"然后登录我。这里是如何设置登录

<script src="js/script.js"></script>
<script src="https://apis.google.com/js/platform.js?onload=googleLoad" async defer></script>

在我的script.js文件中

function googleLoad() {
  gapi.load('auth2', function() {
    gapi.auth2.init();
  });
};

function googleSignIn(googleUser) {
    // Useful data for your client-side scripts:
    var profile = googleUser.getBasicProfile();
    console.log("Email: " + profile.getEmail());

    var id_token = googleUser.getAuthResponse().id_token;
    // console.log("ID Token: " + id_token);

    var fullName = profile.getName(),
    imageUrl = profile.getImageUrl(),
    email = profile.getEmail(),
    provider = 'Google';
};

function loggedOut(href){
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut().then(function () {
        console.log('User signed out.');
        document.location = href;
    });
};

$('#log-out').on('click', function(e){
    e.preventDefault();
    var href = $(this).attr('href');
    loggedOut(href);
});

当你加载页面时,googleSignIn函数被执行并且我登录。显然这是在加载时执行的默认函数的名称。如果我更改了该功能的名称,它将无法运行。这样可以解决问题,但我如何(何时)手动执行该功能?

然后出现退出按钮,点击该按钮确实可以控制消息并成功登出。但是在下一页加载时我会因为googleSignIn而再次登录。我做错了什么?

1 个答案:

答案 0 :(得分:0)

唉,代码没有任何问题。我发现注销功能不适用于localhost。在实时服务器上测试它,一切都很好。

感谢@class在另一个related question

上提到它