/v1/me/* 和 /v1/auth/* 下,并要求用户会话(JWT);API key 不适用。
档案数据与已验证身份
PATCH /v1/me 用于更新档案数据(display_name、tax_id、phone、
country)。但身份验证(KYC/KYB)获批后,姓名、税号和国家会
自动由已验证的身份填充——以验证确认的信息为准,而非自行申报的内容——
并且通过此端点变为不可修改:
phone 随时可通过其专属验证流程修改
(政策要求时会向旧号码发送 OTP)。
密码
1
修改密码(有会话时)
使用
current_password 和 new_password 调用 POST /v1/me/password。如果你的账户是通过社交登录创建、尚未设置过密码,将 current_password 留空即可设置第一个密码。修改密码会撤销所有其他会话,响应中会携带一个新的会话。2
找回密码(无会话时)
使用 然后使用
org 和 email 调用 POST /v1/auth/password/forgot。无论账户是否存在,它始终返回 200 且响应体相同(绝不透露该邮箱是否已注册)。验证码发送到邮箱;若指定 channel:"sms",则发送到已验证的手机号。code 和 new_password 调用 POST /v1/auth/password/reset。该操作会撤销所有会话。登录邮箱
邮箱可以更换,但新邮箱始终需要验证:验证码发送到新地址,只有确认后更换才会生效。这可以防止任何人将登录指向一个他并不控制的邮箱。1
发起更换
使用
new_email 调用 POST /v1/me/email/change。如果 2FA 策略要求,还需为 email_change 操作附带 X-OTP-Token 请求头。2
用验证码确认
使用在新邮箱收到的
code 调用 POST /v1/me/email/confirm。旧邮箱会收到更换通知。更换邮箱不会影响你已绑定的社交登录(Google、Apple 等):它们以提供方标识,而非邮箱。
用于收款的别名和二维码
每个账户都有两个永久性的公开标识,方便他人在 CBPay 账户之间向你转账:- 别名(Alias) — 通过
PUT /v1/me/alias一次性设定(4-20 个字符,允许a-z 0-9 . _ -,不可使用保留词)。设定后不可更改。 - 个人资料二维码 —
GET /v1/me/qr返回qr_token、载荷cbpay:pay?to=<token>以及可直接渲染的 PNG。它只允许他人向你转入资金,因此永不变化。
GET /v1/resolve?alias=taylor.code(或 ?qr=<token>)确认你的身份,该接口返回你的姓名、类型和头像。转账也可以直接使用该目标:
to_qr_token 的用法相同(接受 token 或 cbpay:pay?to=… 载荷)。
头像
使用图片字节流调用PUT /v1/me/avatar(JPEG、PNG 或 WebP,最大 512 KB;类型从内容自动识别)。DELETE /v1/me/avatar 可删除头像,GET /v1/avatars/{accountID} 用于预览展示。
响应包含 avatar_url:当图片已发布到公共 CDN 时,它是一个无需认证即可加载的绝对 URL(非常适合前端 — 直接放入 <img> 使用);此时 GET /v1/avatars/{accountID} 会以 302 重定向到同一 URL。
双重验证(2FA)
CBPay 通过一次性验证码保护敏感操作。你可以按操作选择是否要求验证,以及通过哪个渠道:GET /v1/otp/preferences 显示你的生效策略(以及你所在组织的要求,后者是下限:你可以更严格,但不能低于它)。PUT /v1/otp/preferences 用于调整策略。削弱 2FA(关闭某个操作或降低渠道等级)需要先验证你当前的因子。
身份验证器应用(TOTP)
1
注册
POST /v1/me/totp/enroll 返回 otpauth:// 链接和二维码。在你的应用中扫描它。2
确认
使用第一个验证码调用
POST /v1/me/totp/confirm。它会发给你 10 个一次性备用码 — 请妥善保存,它们只显示这一次。POST /v1/me/totp/recovery-codes 可重新生成备用码,通过 DELETE /v1/me/totp 可移除该应用(两者均需要有效验证码)。
通行密钥(Passkeys)
通行密钥让你无需密码即可登录,使用设备的生物识别(Face ID、Touch ID、Windows Hello 或安全密钥)。1
注册
POST /v1/me/passkeys/register/begin → 将 options.publicKey 传给 navigator.credentials.create() → 使用结果和一个名称(“Taylor’s MacBook”)调用 POST /v1/me/passkeys/register/finish。2
登录
使用
org 调用 POST /v1/auth/passkey/login/begin → navigator.credentials.get() → POST /v1/auth/passkey/login/finish。由于通行密钥本身已包含两个因子(设备 + 生物识别),此登录不再要求第二个验证码。GET/DELETE /v1/me/passkeys 可列出和移除你的通行密钥。你无法移除自己唯一的登录方式。
通行密钥及其注册依赖于你所在组织已配置其域名;否则会返回
passkeys_unavailable。会话与活动
GET /v1/me/sessions列出你的活跃会话(设备、IP、登录方式、当前会话标识)。DELETE /v1/me/sessions/{id}关闭某一个会话;POST /v1/me/sessions/revoke-all关闭除当前之外的所有会话。GET /v1/me/security/events?from=&to=是你账户的安全历史记录:登录、密码或邮箱更换、因子的添加或移除。
常见错误
以后可以更改我的别名或二维码吗?
以后可以更改我的别名或二维码吗?
不可以。两者在设计上都是永久性的:它们是你用于收款的稳定身份。二维码只允许收款,因此分享它没有风险。
我丢失了装有身份验证器应用的手机
我丢失了装有身份验证器应用的手机
在任何验证或登录中使用你的一个备用码(确认 TOTP 时获得的那些)。如果没有备用码,请使用另一个因子(通行密钥或密码 + 其他渠道)恢复访问,然后重新生成所有内容。
更换邮箱会断开我与 Google/Apple 的连接吗?
更换邮箱会断开我与 Google/Apple 的连接吗?
不会。社交登录以提供方标识,而非邮箱,因此它们会继续正常工作。