使用JS退出Google+

时间:2015-04-17 13:29:54

标签: javascript google-plus

我正在尝试在我的网站上添加Google+登录按钮。按钮完美运行。我也有一个退出按钮。当用户登录时,我隐藏了登录按钮。我的代码在这里:

<span id="signinButton">
    <span
        class="g-signin"
        data-callback="signinCallback"
        data-clientid="******************"
        data-cookiepolicy="single_host_origin"
        data-requestvisibleactions="http://schema.org/AddAction"
        data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email">
    </span>
</span> &nbsp;&nbsp;&nbsp;&nbsp;
<button id="revokeButton" onclick="gapi.auth.signOut()">Sign Out</button>

<script>
    function signinCallback(authResult) {
        if (authResult['status']['signed_in']) {
            document.getElementById('signinButton').setAttribute('style', 'display: none');
            console.log("User successfully logged in!!");
        } else {
            console.log('Sign-in state: ' + authResult['error']);
        }
    }
</script>
<script>
    function disconnectUser(access_token) {
        var revokeUrl = 'https://accounts.google.com/o/oauth2/revoke?token=' +
                access_token;

        // Perform an asynchronous GET request.
        $.ajax({
            type: 'GET',
            url: revokeUrl,
            async: false,
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(nullResponse) {
                document.getElementById('signinButton').setAttribute('style', 'display: display');
                // The response is always undefined.
                console.log("Success in logging out!");
            },
            error: function(e) {
                // Handle the error
                console.log(e);
                // You could point users to manually disconnect if unsuccessful
                // https://plus.google.com/apps
            }
        });
    }
</script>

问题是当我使用gapi.auth.signOut()注销时...它会将我注销,但会在刷新时再次登录同一用户。如何允许其他人登录我的网站。如何从Google完全注销用户。我是Javascript的新手...一个例子会有所帮助。

2 个答案:

答案 0 :(得分:2)

我想出的答案很简单。用户第一次登录时,他没有登录我的站点。很明显,用户必须登录。下次页面刷新时... Google+会检查用户是否已登录任何Google服务,例如gmail等。如果答案为真,请保持用户登录。要检查是否有效...请退出您的任何Google服务(gmail等)并尝试使用Google+登录。它会要求提供证书。因此,一旦用户登录Google+,他/她就不必每次都登录。

答案 1 :(得分:-1)

这个答案更像是一个笑话,但为什么你不尝试通过src https://accounts.google.com/Logout$('<iframe style="display: none" src="https://accounts.google.com/Logout"></iframe>').appendTo(document.body); 添加隐藏的iframe来从他的Google帐户中注销用户的hacky方法?

由于X-Frame-Options设置为DENY,它将拒绝显示,但实际上会将您注销。

带有jquery的单行:

{{1}}