如需使用 Google Identity Services JavaScript 库 (google.accounts.oauth2) 授权访问 Web 应用中的 Google API,您首先需要:
- 获取 OAuth 2.0 客户端 ID。
- 配置 OAuth 权限请求页面和范围。
- 加载客户端库。
- (可选)设置内容安全政策 (CSP) 和跨域开放者政策 (COOP)。
获取 Google API 客户端 ID
如需在您的网站上启用 Google 账号授权,您首先需要设置 Google API 客户端 ID。请完成以下步骤:
- 打开 Google Cloud 控制台的“客户端”页面。
- 创建或选择 Cloud 控制台项目。创建生产应用时,可能需要多个项目;请为您管理的每个项目重复本部分的其余步骤。
- 点击创建客户端,然后为应用类型选择 Web 应用,以创建新的客户端 ID。如需使用现有客户端 ID,请选择类型为 Web 应用的客户端 ID。
将您网站的 URI 添加到已获授权的 JavaScript 来源。该 URI 仅包含 scheme 和完全限定的主机名。例如
https://www.example.com。如果您将授权代码模型与
ux_mode: 'redirect'搭配使用(或在后端端点交换授权代码),请将重定向 URI 添加到已获授权的重定向 URI。重定向 URI 包含 scheme、完全限定的主机名和路径,并且必须符合重定向 URI 验证规则。例如https://www.example.com/oauth2callback。
配置完成后,请记下创建的客户端 ID。
初始化 initCodeClient() 或 initTokenClient() 时,您将在 client_id 属性中传递此值。(系统还会创建一个客户端密钥,您必须对该密钥保密,并且只能将其用于服务器端令牌交换操作。)
配置 OAuth 权限请求页面
当您的 Web 应用使用 OAuth 2.0 范围请求访问用户数据时,Google 会显示一个权限请求页面,告知用户哪个应用正在请求访问权限、请求的数据范围以及适用的条款。
- 打开 Cloud 控制台的 Google Auth Platform 部分中的“品牌信息”页面。
- 如果出现提示,请选择您配置的项目。
- 填写品牌信息表单(应用名称、应用徽标、支持电子邮件地址、已获授权的网域、应用首页链接和隐私权政策链接),然后点击保存。
- 前往“数据访问”页面,配置应用所需的 Google API 范围。最佳做法是在需要访问权限时以增量方式请求范围,而不是预先请求。
- 查看您的验证状态。如果您的应用请求了敏感或受限范围,请提交应用进行验证。如需了解详情,请参阅 OAuth 验证要求。
内容安全政策和 COOP
如果您的 Web 应用强制执行内容安全政策 (CSP),请允许以下 Google Identity 服务来源:
script-src:https://accounts.google.com/gsi/clientframe-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,以便对话框窗口可以将授权响应传回您的页面。
后续步骤
接下来,在网页上加载客户端库,开始初始化授权客户端。