简介

欢迎使用 Stanley 认证中心 (Stanley Identity Center) API。本服务提供了一套完整的用户认证和管理解决方案,包括用户注册、登录、信息校验、密码修改和账户删除等功能。

本文档旨在为开发者提供清晰、完整的 API 对接指南。

基础 URL (Base URL): https://pw.pwpwpwpwpw.pw/

重要提示:
  • 所有 API 请求和响应的内容格式均为 application/json
  • 所有需要认证的接口,必须在请求头 (Header) 中携带 Authorization 字段。

认证 (Authentication)

本 API 使用 JSON Web Tokens (JWT) 进行认证。

  1. 用户通过 /api/users/login 接口成功登录后,会获取一个 token
  2. 在访问需要认证的接口时,您必须将此 token 放入 HTTP 请求的 Authorization 头中,并使用 Bearer 方案。

格式示例:

Authorization: Bearer 

速率限制 (Rate Limiting)

为了保证服务稳定和安全,API 设置了速率限制:

  • 通用接口限制: 每个 IP 地址每分钟最多请求 100 次。
  • 敏感操作限制: 针对注册、登录、修改密码、删除账户等敏感操作,每个 IP 地址每分钟最多请求 10 次。
  • 邮件发送限制: 每个 IP 地址每分钟只能请求发送 1 次验证码邮件。

超出限制会收到 429 Too Many Requests 错误响应。

API 端点详解

发送验证码

此接口用于向指定邮箱发送一个6位数的验证码,用于后续的注册或删除账户操作。

POST /api/auth/send-code

请求体 (Body)

参数名类型是否必须描述
emailString接收验证码的邮箱地址。
actionString操作类型。`register` (默认) 或 `delete`。

响应示例

{
    "message": "验证码已成功发送到您的邮箱。"
}

用户注册

使用邮箱、用户名、密码和收到的验证码来创建一个新用户。

POST /api/users/register

请求体 (Body)

参数名类型是否必须描述
usernameString用户名 (至少3位)。
emailString邮箱地址。
passwordString密码 (至少6位)。
codeString从邮件中获取的6位数字验证码。

成功响应 (201 Created)

{
    "message": "用户注册成功!",
    "userId": 1,
    "username": "testuser",
    "email": "[email protected]"
}

用户登录

使用用户名 (或邮箱) 和密码进行登录,获取认证 token。

POST /api/users/login

请求体 (Body)

参数名类型是否必须描述
usernameString用户名或邮箱地址。
passwordString密码。

成功响应 (200 OK)

{
    "message": "登录成功!",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

验证 Token

校验一个 token 是否有效,并返回其解码后的用户信息。

POST /api/auth/verify

请求体 (Body)

参数名类型是否必须描述
tokenString需要被验证的 JWT token。

成功响应 (200 OK)

{
    "valid": true,
    "user": {
        "id": 1,
        "username": "testuser",
        "email": "[email protected]"
    }
}

修改密码

已登录用户可以修改自己的密码。 (需要认证)

PUT /api/user/password

请求头 (Header)

Authorization: Bearer <your_jwt_token>

请求体 (Body)

参数名类型是否必须描述
oldPasswordString旧密码。
newPasswordString新密码 (至少6位)。

成功响应 (200 OK)

{
    "message": "密码已成功更新。"
}

删除账户

已登录用户验证密码和邮箱验证码后,可以永久删除自己的账户。 (需要认证)

DELETE /api/user/account

请求头 (Header)

Authorization: Bearer <your_jwt_token>

请求体 (Body)

参数名类型是否必须描述
passwordString用户的当前密码。
codeString从邮件中获取的6位删除验证码。

成功响应 (200 OK)

{
    "message": "您的账户已成功删除。"
}