API 参考 / auth
POST /api/v1/auth/register · register
注册新用户并发送邮箱验证邮件。可携带 invitationToken 走邀请落地注册流—— 此时注册邮箱必须等于邀请邮箱。公开端点。
403 有两种(B-00265):平台已关闭注册(detail「注册暂未开放」)、 或携带的 invitationToken 只限被邀请邮箱使用(detail「此邀请仅限被邀请邮箱使用」)。 此前合同只声明 201/400/409,handler 却会返 403,客户端据合同生成时会把它当成未知错误。
409 有两种,按 problem 的 code 分支(B-00261):
- 无 code(type urn:gameflow:problem:conflict)= 该邮箱已注册且已完成验证, 引导去登录 / 找回密码。
- code: email_pending_verification(type urn:gameflow:problem:email-pending-verification) = 该邮箱已注册但尚未完成邮箱验证。此时服务端已按 60 秒冷却重发验证码(命中冷却则 不重复发信、也不作废用户手里那枚码),但本次请求提交的密码不会生效——注册路径不 改动任何既有账号的密码(改密码必须先证明持有该邮箱:登录后改,或走找回密码)。 客户端必须把「密码未生效」明确告诉用户并引导去验证;此前该分支返回 201「注册成功」 却静默丢弃新密码,用户验证完邮箱用刚设的密码登录必然 401。
邮箱格式(B-00262):只接受可投递的纯地址。RFC5322 的信封写法 (名字 <[email protected]>、[email protected] (注释)、<[email protected]>、带引号的本地部分)一律 400—— 它们既会绕开邮箱去重,也不是合法的 SMTP 收件人。
公开端点,无需鉴权。
email(必填)password(必填)invitationTokenuserId(必填)email(必填)emailVerified(必填)400:Problem 错误响应403:Problem 错误响应409:Problem 错误响应curl -X POST "https://workflow.games/api/v1/auth/register" \
-H "content-type: application/json" \
--data '{"email":"[email protected]","password":"示例文本","invitationToken":"示例文本"}'HTTP/1.1 201
{
"userId": "018f3c2e-0000-7000-8000-000000000000",
"email": "[email protected]",
"emailVerified": true
}合同真值:OpenAPI 3.1(0.1.0)。
相关:Agent 接入指南 · 使用指南 · API 参考索引