使用API JavaScript/jQuery退出Google

4
在我的Web应用程序中,我允许用户使用API客户端库中的auth命令进行登录,但是我无法找到Google API JavaScript客户端库的注销选项。
请问有人能建议我如何退出我的应用程序以及Google帐户吗?
我的登录代码如下:
var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?';
var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile';
var CLIENTID = googleAPI;
var REDIRECT = redirectUrl;
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
$('#googleLogin').click(function(){
        var win = window.open(_url, "windowname1", 'width=800, height=600');

        var pollTimer = window.setInterval(function () {
            if (win.document.URL.indexOf(REDIRECT) != -1) {
                window.clearInterval(pollTimer);
                var url = win.document.URL;
                acToken = gup(url, 'access_token');
                tokenType = gup(url, 'token_type');
                expiresIn = gup(url, 'expires_in');
                win.close();

                validateToken(acToken);
            }
        }, 100);
});
function validateToken(token) {
        $.ajax({
            url: VALIDURL + token,
            data: null,
            success: function (responseText) {
                getUserInfo();
            },
            dataType: "jsonp"
        });
}
2个回答

6
不要在用户从应用程序退出登录时注销他们的Google账户。这种行为会让用户感到意外和烦恼。
你最多只需要尝试“注销”应用程序的用户。(我用引号括起来,因为根据你的实现方式,应用程序可能是虚假的)。
如果你只关心在UI中隐藏元素,你可以设置一个变量,比如“signedIn”,并在用户点击登录/注销按钮时设置或取消它。如果你关心跨会话持久化此状态,请使用存储相同值的cookie。
如果你想确保键盘另一端的人真的是已登录的用户,你可以在“authorize”调用上使用“max_auth_age”参数。如果将其设置为“0”,用户将需要在你的应用程序获得有效令牌之前重新验证与Google的身份。如果你将其与自动会话过期配对(就像在银行或医疗网站上看到的那样),你可以相对确定当前用户的身份。

0

如果您放宽了从用户的Google帐户注销的要求(正如Dan所解释的那样,这不是一个好主意),您可以按照this other question中所述撤销OAuth令牌。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接