简介
欢迎使用 Stanley 认证中心 (Stanley Identity Center) API。本服务提供了一套完整的用户认证和管理解决方案,包括用户注册、登录、信息校验、密码修改和账户删除等功能。
本文档旨在为开发者提供清晰、完整的 API 对接指南。
基础 URL (Base URL): https://pw.pwpwpwpwpw.pw/
重要提示:
- 所有 API 请求和响应的内容格式均为
application/json
。 - 所有需要认证的接口,必须在请求头 (Header) 中携带
Authorization
字段。
认证 (Authentication)
本 API 使用 JSON Web Tokens (JWT) 进行认证。
- 用户通过
/api/users/login
接口成功登录后,会获取一个token
。 - 在访问需要认证的接口时,您必须将此
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)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
String | 是 | 接收验证码的邮箱地址。 | |
action | String | 否 | 操作类型。`register` (默认) 或 `delete`。 |
响应示例
{
"message": "验证码已成功发送到您的邮箱。"
}
用户注册
使用邮箱、用户名、密码和收到的验证码来创建一个新用户。
POST
/api/users/register
请求体 (Body)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
username | String | 是 | 用户名 (至少3位)。 |
String | 是 | 邮箱地址。 | |
password | String | 是 | 密码 (至少6位)。 |
code | String | 是 | 从邮件中获取的6位数字验证码。 |
成功响应 (201 Created)
{
"message": "用户注册成功!",
"userId": 1,
"username": "testuser",
"email": "[email protected]"
}
用户登录
使用用户名 (或邮箱) 和密码进行登录,获取认证 token。
POST
/api/users/login
请求体 (Body)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
username | String | 是 | 用户名或邮箱地址。 |
password | String | 是 | 密码。 |
成功响应 (200 OK)
{
"message": "登录成功!",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
验证 Token
校验一个 token 是否有效,并返回其解码后的用户信息。
POST
/api/auth/verify
请求体 (Body)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 是 | 需要被验证的 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)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
oldPassword | String | 是 | 旧密码。 |
newPassword | String | 是 | 新密码 (至少6位)。 |
成功响应 (200 OK)
{
"message": "密码已成功更新。"
}
删除账户
已登录用户验证密码和邮箱验证码后,可以永久删除自己的账户。 (需要认证)
DELETE
/api/user/account
请求头 (Header)
Authorization: Bearer <your_jwt_token>
请求体 (Body)
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
password | String | 是 | 用户的当前密码。 |
code | String | 是 | 从邮件中获取的6位删除验证码。 |
成功响应 (200 OK)
{
"message": "您的账户已成功删除。"
}