跳到正文
MuoCeon 文档中心
v1auth 上下文

登录与注册

POST /v1/auth/login 与 POST /v1/auth/register:起点参数、流程令牌与可用验证方式。

登录与注册共用同一个形状:提交标识与设备号,换一枚流程令牌(JWE),再逐个完成验证挑战。两者的差别只在于验证方式的来源——登录比对已有凭据,注册把新凭据暂存在流程令牌里。

端点

方法路径说明
POST/v1/auth/login发起登录
POST/v1/auth/register发起注册

两个端点都必须携带 Cloudflare Turnstile 令牌。它是这里唯一挡批量脚本的手段,缺失或校验失败直接拒绝。

请求参数

参数类型必填说明
idstring✅用户名或邮箱,3–255 字符;服务端会去空白并转小写
didstring✅设备标识,8–256 字符;第一方会话按设备维度记账
turnstilestring✅Turnstile 校验令牌
{
  "id": "[email protected]",
  "did": "device-8f3a1c2b",
  "turnstile": "0.xxxxx"
}

响应

{
  "success": true,
  "flow_token": "eyJhbGciOi...",
  "available_methods": [
    { "type": "email", "masked": "a***@example.com", "remaining": 1 },
    { "type": "passkey", "remaining": 1 }
  ]
}
字段说明
flow_token流程令牌(JWE)。后续每一次验证请求都把它放在 Authorization: Bearer 里,服务端会换发新的一枚
available_methods[].typeemail / password / passkey / authenticator / recovery_code
available_methods[].masked打码后的联系方式;仅 email 类出现
available_methods[].remaining该方式剩余可用次数

注册时 available_methods 可能是空数组

新账号还没有任何已验证凭据,因此注册的响应里这个字段可以为空。空数组表示「暂时没有可用的验证方式」,不是注册失败。

后续流程

  1. 用 flow_token 调用 验证挑战 中对应端点;
  2. 每一步成功后都会换回一枚新的 flow_token,必须用新的那枚继续,旧的不再生效;
  3. 全部必需步骤完成后,调用 令牌 的 POST /token,用最后一枚 flow_token 换取访问令牌与刷新令牌。

静默失败

登录时若请求的邮箱与流程令牌里记录的可用方式不匹配,服务端不会报错,而是「成功返回但不发信」。这是刻意的:报错会告诉调用方「这个账号没绑这个邮箱」,等于把账号结构泄露出去。

相关

本页目录