在 gapi.auth.authorize 之后调用注销时出错
Posted
技术标签:
【中文标题】在 gapi.auth.authorize 之后调用注销时出错【英文标题】:Error calling signout after gapi.auth.authorize 【发布时间】:2014-06-02 22:50:56 【问题描述】:我正在使用 google+ 的客户端登录。访问令牌将在 1 小时后过期。令牌过期后调用gapi.auth.signOut()
不会注销用户。如果用户的令牌已过期,我正在尝试通过使用 client_id、范围和 immediate = true
参数调用 gapi.auth.authorize
来重新授权用户。调用此方法后,gapi.auth.signOut()
不起作用。我不明白为什么会这样。
代码如下:
var google =
signOut: function()
var token = gapi.auth.getToken();
if(!token)
var params =
'client_id': global.clientid,
'session_state': global.sessionState,
'response_type':'token'
gapi.auth.checkSessionState(params, function(state)
if(state == true)
google.doSignOut();
else
google.silentAuthorize(function(data)
google.doSignOut();
);
);
else
google.doSignOut();
,
doSignOut: function()
gapi.auth.signOut();
google.loggedin = false;
,
silentAuthorize: function(callback)
var params = ;
params.client_id = global.clientid;
params.immediate = true;
params.scope = "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.login"
gapi.auth.authorize(params, callback);
在令牌尚未过期时调用 google.signOut 可以正常工作。但是一旦令牌过期或者我简单地调用 google.silentAuthorize() 并回调,调用 gapi.auth.signOut() 就会开始抛出错误:
TypeError:无法读取 null 的属性“clear”
现在已经尝试解决这个问题 4 小时,非常感谢任何帮助!
【问题讨论】:
【参考方案1】:我无论如何都找不到从前端更新令牌,所以我切换到使用 google auth 的混合方法。我现在每次在 php 中到期时都会恢复会话。
【讨论】:
以上是关于在 gapi.auth.authorize 之后调用注销时出错的主要内容,如果未能解决你的问题,请参考以下文章
echarts geo世界地图,汉化之后部分国家名称显示的位置不对,这个该怎么调?