我们 即将停用适用于网页的 Google 登录 JavaScript 平台库。此库将于 2023 年 3 月 31 日弃用后停止下载。请改用新版网页版 Google Identity Services。
现在,系统会禁止新创建的客户端 ID 使用旧版平台库,现有的客户端 ID 不受影响。在 2022 年 7 月 29 日之前创建的新客户端 ID 可以设置 `plugin_name` 以允许使用 Google 平台库。

请求额外的权限

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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

例如,假设您的应用允许用户将音乐播放列表保存到 Google Drive;您的应用可以在登录时请求基本用户信息,之后,当用户准备好保存他们的第一个播放列表时,只请求 Google Drive 权限。

如果您怀疑用户没有登录,因为您的同意屏幕过于庞大,或者对为什么要求他们提供某些权限感到困惑,请使用此技术。以下说明适用于网络,源自添加客户端登录按钮的说明:构建 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);

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}));
    });