跳转到主要内容
你的用户可以使用 Google、Apple、Microsoft 或 Facebook 注册和登录——无需创建或记住密码。CBPay 采用令牌 交换(token exchange)模型:“使用……继续”按钮位于你的前端, 用户在提供方完成授权,你的前端收到凭证并将其 传给 API;CBPay 会以加密方式验证它并返回 会话。
社交登录由你的运营方(组织)启用,并且每个 组织使用自己的 Google/Apple/Microsoft/Meta 应用,因此用户 在授权页面上看到的是你的品牌。使用 GET /v1/auth/oauth/providers 查询哪些提供方处于启用状态。

1. 查询已启用的提供方

为了渲染正确的按钮,你的前端先查询哪些提供方处于启用状态 以及各自的 client_id
这是一个公开端点(无需令牌):client_id 不是机密信息。

2. 在前端获取凭证

每个提供方通过其自己的 SDK 向你交付凭证。最简示例:
使用 Google Identity Services

3. 用凭证交换会话

新用户 → 创建账户并返回 201
已有用户 → 完成登录并返回 200,包含 access_tokenaccount_idrole(与密码登录相同)。 type 字段(person | company,默认 person)仅在 创建账户时使用;如果账户已存在则被忽略。

如何判定是创建还是登录

4. 社交登录与 2FA

如果账户在登录时启用了 OTP安全与 2FA),社交登录同样遵循该第二 步骤:POST /v1/auth/oauth 不会直接返回会话,而是返回 otp_required: true + pending_token,你需要通过 POST /v1/auth/login/otp 完成登录,流程与密码登录一致。

5. 关联与解绑提供方

已登录的用户可以管理自己的登录方式:
你不能解绑唯一的登录方式:如果账户没有 密码,且该提供方是唯一关联的登录方式,API 会返回 409 last_login_method(请先设置密码或关联另一个提供方)。

错误

常见问题

不需要。授权流程通过提供方 SDK 在你的前端完成; 你只需将得到的凭证发送给 CBPay。没有回调 页面,也没有服务端状态。
可以。用户可以先用邮箱/密码注册,之后再关联 Google, 反之亦然。只要邮箱一致且已验证,所有方式都指向 同一个账户。
不会按邮箱自动关联(防止有人冒用他人 邮箱)。系统会创建一个绑定该身份的独立账户; 用户之后可以再添加邮箱/密码。
不可以。提供方凭证只用于一次性验证你的身份;后续的 每次调用都使用 CBPay 的 access_token
最后修改于 2026年7月12日