我在用谷歌登录 https://developers.google.com/identity/sign-in/web/reference对我网站上的用户进行身份验证,然后作为单独的步骤请求离线权限。
根据文档,GoogleUser对象应该有一个方法“grantOfflineAccess”,它会提示额外的权限without提示用户确认他们的帐户。然而,在 Firebug 中检查该对象时,我发现了所描述的所有其他方法,但没有 grantOfflineAccess。
我有一个使用 GoogleAuth 对象的 grantOfflineAccess 方法的解决方法,但这会强制用户确认他们的帐户(我想避免这种情况,因为他们有just在登录期间执行该步骤)。我想将登录和授权离线访问提示分开,以便我可以在它们之间进行一些验证。
文档是否错误/过时?还有其他方法可以实现我想要的行为吗?
我刚刚自己查了一下,这个方法确实不存在。我认为这实际上是文档中的错误。
所以我稍微研究了一下,找到了另一种方法来实现你想要的:有一个名为(显然未记录)的参数authuser
。它基本上是您登录的帐户的索引(0 表示第一个,1 表示第二个,...)。 Google 在内部将其用于 GoogleDocs 等内容。经过一番探索,我在 GoogleUser 数据中找到了 authuser:
事实证明wc
is the getAuthResponse()
数据,因此您可以通过以下方式访问该索引:gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().session_state.extraQueryParams.authuser
.
您现在可以致电grantOfflineAccess
of GoogleAuth
使用此参数,导致以下调用:
var auth = gapi.auth2.getAuthInstance();
var user = auth.currentUser.get();
auth.grantOfflineAccess({
authuser: user.getAuthResponse().session_state.extraQueryParams.authuser
});
这将打开没有帐户选择器的提示:-)希望我能提供帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)