请求其他权限

请求用户授权访问用户数据或其他 资源,您可以在初始请求中预先请求所有范围, 使用增量授权仅在需要时请求范围。 使用增量授权,您的应用最初仅请求范围 启动应用,然后以新权限的形式请求其他范围 在指明向 用户。

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

如果您怀疑用户由于您的 权限请求页面过多,或对为何被请求感到困惑 某些权限 以下说明适用于网络,根据 添加客户端登录按钮的说明: 构建 Google 2.0 登录按钮。 如需详细了解 Web 的增量授权,请参阅 OAuth 2.0 文档

请求附加范围

在登录时,您的应用请求“base”范围(包括登录范围) 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); 的构建器:

const options = new gapi.auth2.SigninOptionsBuilder();
options.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}));
    });