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(必填)
string
password(必填)
string
invitationToken
string

响应字段 · 201

userId(必填)
string
email(必填)
string
emailVerified(必填)
boolean

错误

请求示例(curl)

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 参考索引

Workflow 正在加载…