身份关联 - OAuth 2.0

如需实现顺畅的用户会话(例如,访问会员福利、个性化优惠)和经过身份验证的结账,您必须使用 OAuth 2.0 实现身份关联功能。如果您不实现身份关联,则必须支持以访客身份结账。

如果您对隐私权法规和意见征求实践有任何疑问,请咨询您的法务团队。

核心要求

  • 协议:实现 OAuth 2.0 授权代码流程 (RFC 6749 2.3.1)。
  • 客户端身份验证:必须在令牌端点支持 HTTP 基本身份验证 (client_secret_basic)。
  • 范围:您必须支持本部分中定义的标准 UCP 范围。
  • 发现:您必须在 /.well-known/oauth-authorization-server (RFC 8414) 托管元数据文件,以允许平台发现您的端点。

范围

您必须实现以下范围,该范围会授予所有结账生命周期操作(获取、创建、更新、删除、取消、完成)的权限。

  • 范围名称ucp:scopes:checkout_session

用户体验:您应将所请求的范围显示为单个捆绑式意见征求界面(例如,“允许 Google 管理您的结账会话”)而不是精细的技术开关。

Google 简化关联

Google 简化关联是标准 OAuth 2.0 的可选附加功能。它利用 JWT 断言在 OAuth 2.0 令牌端点(checkcreateget intent)上结合了 intent 检查和令牌交换。

建议使用 Google 精简关联,以获得顺畅的用户体验。它允许用户使用自己的 Google 个人资料关联账号或创建新账号,而无需离开 Google 界面。由于整个流程完全在 Google 的界面中进行,因此无需关联前端。这样可以减少开发开销、消除浏览器重定向,并提高转化率。

  • 规范:实现必须遵循简化关联的要求
  • 标准:虽然它借鉴了 RFC 7523 中的概念,但为了增强安全性,它有所不同。

授权服务器元数据(JSON 示例)

您必须在 https://[your-domain]/.well-known/oauth-authorization-server 发布此 JSON 对象

示例:

{
  "issuer": "https://merchant.example.com",
  "authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
  "token_endpoint": "https://merchant.example.com/oauth2/token",
  "revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
  "scopes_supported": [
    "ucp:scopes:checkout_session"
  ],
  "response_types_supported": [
    "code"
  ],
  "grant_types_supported": [
    "authorization_code",
    "refresh_token"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic"
  ],
  "service_documentation": "https://merchant.example.com/docs/oauth2"
}