GoogleUser对象没有grantOfflineAccess方法?

Wog*_*gan 7 javascript google-api google-oauth google-signin

我正在使用Google登录对我网站上的用户进行身份验证,然后作为单独的步骤询问脱机权限.

根据文档,GoogleUser对象应该有一个方法"grantOfflineAccess",该方法提示其他权限,而不会提示用户确认其帐户.然而,在Firebug中检查对象时,我发现所描述的所有其他方法,但不是grantOfflineAccess.

我有一个使用GoogleAuth对象的grantOfflineAccess方法的解决方法但强制用户确认他们的帐户(我想避免,因为他们刚刚在登录时执行了该步骤).我想保持登录并授权离线访问提示单独,以便我可以在它们之间进行一些验证.

文档错误/过时了吗?有没有其他方法可以达到我想要的行为?

Rud*_*olf 8

我自己检查过,方法确实不存在.我认为这实际上是文档中的错误.

所以我捅了一下,找到了另一种方法来实现你想要的东西:有一个(显然是未记录的)参数authuser.它基本上是您登录的帐户的索引(第一个为0,第二个为1,...).Google在内部使用GoogleDocs等内容.经过一些更多的讨论,我在GoogleUser数据中找到了authuser:

在此输入图像描述

原来这wcgetAuthResponse()数据,因此您可以使用以下方式访问此索引:gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().session_state.extraQueryParams.authuser.

现在,您可以调用grantOfflineAccessGoogleAuth使用此参数,从而产生以下调用:

var auth = gapi.auth2.getAuthInstance();
var user = auth.currentUser.get();
auth.grantOfflineAccess({
  authuser: user.getAuthResponse().session_state.extraQueryParams.authuser
});
Run Code Online (Sandbox Code Playgroud)

这将打开没有帐户选择器的提示:-)希望我能帮忙!