认证 REST API
Manager 的公开认证接口统一位于 /api/auth/*。除下表注明的 WebView HTML 页面外,响应使用标准包络:
json
{
"success": true,
"code": 0,
"message": "",
"data": {}
}字段名使用 snake_case。业务拒绝(例如密码错误或凭据修改校验失败)通常仍是 HTTP 200,调用方必须 检查 success 与 code;没有有效登录会话的受保护请求返回 HTTP 401,并使用相同的响应结构。
当前接口
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/auth/login | 用户名或邮箱 + 密码登录;包含 @ 时只走邮箱匹配 |
POST | /api/auth/logout | 退出当前浏览器会话,可重复调用 |
GET | /api/auth/me | 返回标准包络中的当前用户 DTO |
PATCH | /api/auth/credentials | 修改当前账户凭据 |
POST | /api/auth/register | 注册 |
POST | /api/auth/verify-email | 使用邮件中的一次性令牌完成邮箱验证 |
POST | /api/auth/resend-verification | 中性响应地重发验证邮件 |
POST | /api/auth/forgot-password | 中性响应地请求密码重置邮件 |
POST | /api/auth/reset-password | 使用一次性令牌设置新密码 |
POST | /api/auth/confirm-email-change | 确认当前账户的邮箱变更 |
POST | /api/auth/confirm-account-deletion | 确认账户删除并开始冷静期 |
GET | /api/auth/config | 返回公开注册、用户名与人机验证配置 |
GET | /api/auth/turnstile | 为原生移动端 WebView 返回 manager 同源的 Turnstile HTML 页面(不是 JSON 包络) |
GET | /api/auth/providers | 返回当前可用的第三方登录提供商 |
GET /api/auth/me 的 data 是 CurrentUserDto,包含可选用户标识、名称、头像、邮箱、访问级别和 可选目标连接等当前会话字段;未登录时应按 HTTP 401 和标准包络处理,不能解析历史模板响应。
修改凭据通过 PATCH /api/auth/credentials 提交必填的 current_username、current_password,以及 可选的 new_username、new_password;调用方只使用上表列出的当前路径。 第三方 OAuth 发起、回调和身份绑定仍属于 /api/oauth/*。