此参考页面介绍了 Google 提供的端点和接口, 您的应用会在 基于 OAuth 的账号关联 流程中使用这些端点和接口。
前提条件和标准
如需成功与这些 Google 端点交互,您的集成必须遵循以下标准:
- OAuth 2.0:符合 RFC 6749。
- JSON Web 令牌 (JWT):符合 RFC 7519(适用于简化 关联和 RISC)。
- 安全事件令牌:符合 RFC 8417(适用于 RISC)。
- HTTPS:所有请求都必须通过安全的 HTTPS 连接发出。
OAuth 重定向 URI
您的服务在成功完成身份验证和征得用户同意后,会将用户的浏览器重定向到此端点。YOUR_PROJECT_ID 路径
参数是您在 注册期间配置的 ID。
- 网址:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID 沙盒网址:
https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID方法:
GET(使用浏览器重定向)
请求参数
将用户重定向回 Google 时,必须将参数附加到网址。根据所用的 OAuth 流程,这些参数的格式可以是查询字符串(授权代码流程),也可以是网址片段(隐式流程)。
| 参数 | 说明 |
|---|---|
code
|
(授权代码流程必需)由您的服务生成的授权代码。 |
state
|
(必需)最初从 Google 收到的未修改状态值。 |
access_token
|
(隐式流程必需)由您的服务生成的长期有效的访问令牌。 |
token_type
|
(隐式流程必需)必须为 bearer。 |
错误响应
如果对 OAuth 重定向 URI 的请求格式不正确,您将收到 HTTP 400 Bad Request 错误。响应正文将包含一个具有以下结构的 JSON 对象:
| 字段 | 说明 |
|---|---|
sendPostBody |
确定 JS 是否应使用 POST 重定向到 redirectUri。在此场景中,通常为 false。 |
errorMessage |
重定向无法完成时向客户端显示的错误消息。对于缺失的片段,此值为 "A URI fragment or query string must be set." |
OAuth 2.0 错误响应
如果用户拒绝授权或您的服务遇到错误,您的服务
必须使用标准
OAuth 2.0 错误参数(例如 error=access_denied)将用户重定向回 OAuth 重定向 URI。Google 将
处理这些参数,并向用户显示相应的错误屏幕。
RISC API(可选)
您的服务使用此 API 在用户使用 RISC 协议取消关联您平台上的 账号时主动通知 Google,确保两个平台 保持同步。
- 网址:
https://risc.googleapis.com/v1/events:publish - 方法:
POST - 身份验证: 需要具有相应权限的 Google 服务账号令牌。
- Content-Type:
application/json
安全事件令牌声明
您用于向 Google 通知令牌撤消事件的安全事件令牌必须符合下表中的要求:
| 声明 | 说明 |
|---|---|
iss |
发布者声明: 这是您托管的网址,在注册期间与 Google 共享。 |
aud |
受众群体声明: 此声明将 Google 标识为 JWT 接收者。必须将其设置为 google_account_linking。 |
jti |
JWT ID 声明: 这是您为每个安全性事件令牌生成的唯一 ID。 |
iat |
发布时间声明: 这是 NumericDate 值,表示创建此安全性事件令牌的时间。 |
toe |
事件时间声明: 这是 可选 的 NumericDate 值,表示令牌被撤消的时间。 |
exp |
到期时间声明: 请勿添加此字段,因为导致此通知的事件已发生。 |
events |
安全事件声明: 这是一个 JSON 对象,并且必须仅包含一个令牌撤消事件,其中包含以下字段:
|
如需详细了解字段类型和格式,请参阅 JSON Web 令牌 (JWT)
App Flip“翻转返回”接口
对于 App Flip,您的移动应用必须将授权代码或访问 令牌返回给 Google 应用。
Android(Intent 结果)
您的应用使用 Intent 打开。征得用户同意后,应用会完成并向 Google 返回结果。如需了解详情,请参阅 Android 实现指南。
- 操作:
com.google.android.gms.auth.CODE_AVAILABLE - 额外内容:
code、state、access_token、token_type。
iOS(自定义网址协议和通用链接)
您的应用使用自定义网址协议或 HTTPS 通用链接打开 Google。如需了解详情,请参阅 iOS 实现指南。
- 格式:
<return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING