设置

如需使用 Google Identity Services JavaScript 库 (google.accounts.oauth2) 授权访问 Web 应用中的 Google API,您首先需要:

  1. 获取 OAuth 2.0 客户端 ID。
  2. 配置 OAuth 权限请求页面和范围。
  3. 加载客户端库。
  4. (可选)设置内容安全政策 (CSP) 和跨域开放者政策 (COOP)。

获取 Google API 客户端 ID

如需在您的网站上启用 Google 账号授权,您首先需要设置 Google API 客户端 ID。请完成以下步骤:

  1. 打开 Google Cloud 控制台的“客户端”页面。
  2. 创建或选择 Cloud 控制台项目。创建生产应用时,可能需要多个项目;请为您管理的每个项目重复本部分的其余步骤。
  3. 点击创建客户端,然后为应用类型选择 Web 应用,以创建新的客户端 ID。如需使用现有客户端 ID,请选择类型为 Web 应用的客户端 ID。
  4. 将您网站的 URI 添加到已获授权的 JavaScript 来源。该 URI 仅包含 scheme 和完全限定的主机名。例如 https://www.example.com。

  5. 如果您将授权代码模型与 ux_mode: 'redirect' 搭配使用(或在后端端点交换授权代码),请将重定向 URI 添加到已获授权的重定向 URI。重定向 URI 包含 scheme、完全限定的主机名和路径,并且必须符合重定向 URI 验证规则。例如 https://www.example.com/oauth2callback。

配置完成后,请记下创建的客户端 ID。 初始化 initCodeClient() 或 initTokenClient() 时,您将在 client_id 属性中传递此值。(系统还会创建一个客户端密钥,您必须对该密钥保密,并且只能将其用于服务器端令牌交换操作。)

当您的 Web 应用使用 OAuth 2.0 范围请求访问用户数据时,Google 会显示一个权限请求页面,告知用户哪个应用正在请求访问权限、请求的数据范围以及适用的条款。

  1. 打开 Cloud 控制台的 Google Auth Platform 部分中的“品牌信息”页面。
  2. 如果出现提示,请选择您配置的项目。
  3. 填写品牌信息表单(应用名称、应用徽标、支持电子邮件地址、已获授权的网域、应用首页链接和隐私权政策链接),然后点击保存。
  4. 前往“数据访问”页面,配置应用所需的 Google API 范围。最佳做法是在需要访问权限时以增量方式请求范围,而不是预先请求。
  5. 查看您的验证状态。如果您的应用请求了敏感或受限范围,请提交应用进行验证。如需了解详情,请参阅 OAuth 验证要求。

内容安全政策和 COOP

如果您的 Web 应用强制执行内容安全政策 (CSP),请允许以下 Google Identity 服务来源:

  • script-src:https://accounts.google.com/gsi/client
  • frame-src:https://accounts.google.com/gsi/
  • connect-src:https://accounts.google.com/gsi/

对于弹出式授权流程(initTokenClient 或 initCodeClient 搭配 ux_mode: 'popup'),请将 Cross-Origin-Opener-Policy (COOP) HTTP 响应标头配置为 same-origin-allow-popups,以便对话框窗口可以将授权响应传回您的页面。

后续步骤

接下来,在网页上加载客户端库,开始初始化授权客户端。