开发者

登录与注册

Base:NEXT_PUBLIC_API_URL(本地 http://localhost:8000)。

面向终端用户的注册、登录与重置密码。鉴权后请求带 Authorization: Bearer <token>(登录 JWT,或设置页创建的 sv_… 密钥)。

邮箱注册

先发验证码,再带验证码注册。邀请码选填。

POST /v1/auth/send-code
Content-Type: application/json

{ "email": "user@example.com", "purpose": "register" }

成功200 { "ok": true, "retry_after": 60 }。同一邮箱 60 秒内只能发一次。

说明
400邮箱无效
409邮箱已注册
429请稍后再试 / 发送过于频繁
502邮件发送失败
503名额已满 / 邮件服务未配置
POST /v1/auth/register
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "至少6位",
  "email_code": "123456",
  "invite_code": ""
}

成功201,响应与登录相同(含 access_token)。

说明
400邮箱无效、验证码错误、邀请码无效/过期/用完
409邮箱已注册
503用户名额已满

重置密码

purposereset。未注册邮箱也返回 200,不暴露是否存在。

POST /v1/auth/send-code
{ "email": "user@example.com", "purpose": "reset" }

POST /v1/auth/reset-password
{
  "email": "user@example.com",
  "email_code": "123456",
  "password": "新密码至少6位"
}

成功后直接登录。验证码 10 分钟内有效。

登录

POST /v1/auth/login
Content-Type: application/json

{ "email": "user@example.com", "password": "…" }

成功200

{
  "access_token": "<jwt>",
  "token_type": "bearer",
  "user": { "id": "<user-uuid>", "email": "…", "display_name": "…" }
}

失败401

后续请求:Authorization: Bearer <access_token>。也可在设置页创建 sv_… 密钥,用法相同。

Node 示例

const API = process.env.LLMWIKI_API_URL; // http://localhost:8000

const login = await fetch(`${API}/v1/auth/login`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    email: process.env.USER_EMAIL,
    password: process.env.USER_PASSWORD,
  }),
});
if (!login.ok) throw new Error(await login.text());
const { access_token, user } = await login.json();

相关

HTTP API 总览 · 空间 · 论文相关接口 · 场景示例