我们停止了谷歌登录在JavaScript平台的图书馆网络。对于认证和用户登录,使用新的谷歌身份服务的SDK两种网络Android的替代。

请求其他权限

当请求用户访问用户数据或其他资源的权限时,您可以使用增量授权在初始请求中预先请求所有范围,或者仅在需要时才请求范围。使用增量授权,您的应用程序最初仅请求启动您的应用程序所需的范围,然后在需要向用户标识请求原因的上下文中,在需要新权限时请求其他范围。

例如,假设您的应用允许用户将音乐播放列表保存到Google云端硬盘;您的应用可以在登录时请求基本的用户信息,然后,当用户准备保存其第一个播放列表时,仅询问Google云端硬盘权限。

如果您怀疑用户由于您的同意屏幕不堪重负而无法登录,或者对于为什么要向他们询问某些权限感到困惑,请使用此技术。以下说明适用于网络,是从添加客户端登录按钮的说明中衍生出来的:构建Google 2.0登录按钮。您可以在OAuth 2.0文档中阅读有关网络增量授权的更多信息。

请求其他范围

登录时,您的应用会请求“基本”范围,该范围由登录范围profile以及您的应用操作所需的任何其他初始范围组成。稍后,当用户要执行需要其他作用域的操作时,您的应用会请求这些其他作用域,并且用户仅从同意屏幕中授权新作用域。

步骤1:请求基本范围

初始化Google登录时,请请求基本范围profile 。此步骤包含在“构建Google 2.0登录”按钮中

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

步骤2:请求其他范围

无论user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);需要其他范围,都可以通过使用您要添加的范围构造一个选项构建器来请求它们,然后调用user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);

const option = new gapi.auth2.SigninOptionsBuilder();
option.setScope('email https://www.googleapis.com/auth/drive');

googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
    function(success){
      console.log(JSON.stringify({message: "success", value: success}));
    },
    function(fail){
      alert(JSON.stringify({message: "fail", value: fail}));
    });