Javascript Google JS API:gapi.auth.sign回调函数问题
当我调用gapi.auth.sign时,它会被调用两次:在打开登录弹出窗口之前和用户单击登录按钮之后。但在这两种情况下,Javascript Google JS API:gapi.auth.sign回调函数问题,javascript,google-api,Javascript,Google Api,当我调用gapi.auth.sign时,它会被调用两次:在打开登录弹出窗口之前和用户单击登录按钮之后。但在这两种情况下,authResponse参数都不会更改 以下是我的代码示例: gapi.auth.signIn({ scope: 'https://www.googleapis.com/auth/plus.login', callback: function(authResponse) { console.log(authResponse); } )}; 这就是authR
authResponse
参数都不会更改
以下是我的代码示例:
gapi.auth.signIn({
scope: 'https://www.googleapis.com/auth/plus.login',
callback: function(authResponse) {
console.log(authResponse);
}
)};
这就是authResponse
对象在这两种情况下的外观
{
client_id: /* my client id */
cookie_policy: undefined
error: "immediate_failed"
error_subtype: "access_denied"
expires_at: "1422353634"
expires_in: "86400"
g_user_cookie_policy: undefined
issued_at: "1422267234"
response_type: "token"
scope: "https://www.googleapis.com/auth/plus.login"
state: ""
status:
{
google_logged_in: false
method: null
signed_in: false
}
}
编辑:在登录之前,我尝试检查用户是否已在谷歌获得授权,以下是代码:
gapi.auth.authorize({
client_id: _googleClientId,
immediate: true,
scope: 'https://www.googleapis.com/auth/plus.login'
}, function(response) {
if (response.status.signed_in) {
connectGoogleSuccess(response);
} else {
gapi.auth.signIn({
scope: 'https://www.googleapis.com/auth/plus.login',
callback: function(authResponse) {
console.log(authResponse);
}
)};
}
}
);
如何在用户单击“登录”按钮后正确更改authResponse对象
(非常感谢任何帮助)好的,这是我的解决方法
“immediate”=true调用gapi.auth.authorize
方法,所以不会显示登录弹出窗口
gapi.auth.authorize({
客户端id:\u谷歌客户端id,
立即:是的,
范围:'https://www.googleapis.com/auth/plus.login'
},功能(回应){
if(响应.状态.已登录){
连接谷歌成功(回应);
}否则{
连接Google();
}
});代码>
“immediate”=true再次调用gapi.auth.authorize
方法,这样用户就可以输入他的凭证了
connectGoogle(){
gapi.auth.authorize({
客户端id:\u谷歌客户端id,
即时:错,
范围:'https://www.googleapis.com/auth/plus.login'
},功能(回应){
if(响应.状态.已登录){
连接谷歌成功(回应);
}
});
};代码>
希望这能帮助别人 正是这个问题困扰着我。有什么解决办法吗?@Varunara,很抱歉我的反馈太长,但我已经找到了解决方案,如下所述,希望能对您有所帮助)