Files
cwd/docs/api/admin/auth.md
anghunk 0b28c9fa4c docs: 更新API文档结构并完善功能说明
- 重构API文档侧边栏,将公开API拆分为子分类(评论、点赞、配置、身份验证、访问统计)
- 新增详细的公开API接口文档,包括评论管理、点赞功能、配置获取、身份验证和访问统计
- 完善数据统计功能文档,增加概览数据、访问明细和数据分析说明
- 更新功能设置文档,补充图片预览和个性化设置说明
- 修正管理员登录文档中的错误描述和格式问题
2026-02-06 17:55:31 +08:00

2.5 KiB
Raw Permalink Blame History

身份认证相关

管理员登录接口用于获取后续调用其他管理员接口所需的临时 Token。

除登录接口外,所有管理员接口都需要在请求头中携带 Bearer Token。

Authorization: Bearer <token>

Token 通过登录接口获取,有效期为 48 小时。

1.1 管理员登录

POST /admin/login

管理员登录,获取后续调用其他管理员接口所需的临时 Token。

  • 方法:POST
  • 路径:/admin/login
  • 鉴权:不需要

请求头

名称 必填 示例
Content-Type application/json

请求体

{
	"name": "admin@example.com",
	"password": "your_password"
}

字段说明:

字段名 类型 必填 说明
name string 管理员登录名
password string 管理员登录密码

管理员登录名和密码由后端环境变量控制,字段为:

  • ADMIN_NAME
  • ADMIN_PASSWORD

成功响应

  • 状态码:200
{
	"data": {
		"key": "f6e1e0e3-3c9b-4a24-9e88-3b1f709f1e4a"
	}
}

前端需要将 data.key 作为 Token 存储(例如 LocalStorage并在后续请求中通过 Authorization: Bearer <key> 携带。

错误与风控

系统对登录失败进行了风控限制,防止暴力破解:

参数 说明
最大失败次数 5.次 超过次数后封禁 IP
封禁时间 30 分钟 IP 被封禁后需等待此时间
计数有效期 10 分钟 失败计数在此时间后自动重置

风控逻辑

  1. 每次登录失败,系统会记录该 IP 的失败次数
  2. 失败次数在 10 分钟内连续累计
  3. 达到 5 次失败后,该 IP 被封禁 30 分钟
  4. 登录成功后会清除失败计数
  5. 所有状态存储在 Cloudflare KV 中,基于 IP 地址区分
  • 登录失败(用户名或密码无效):

    • 状态码:401
    {
    	"message": "用户名或密码无效",
    	"failedAttempts": 3
    }
    

    failedAttempts 字段表示当前失败次数1-4前端可用于提示用户剩余尝试次数。

  • IP 已被封禁:

    • 状态码:403
    {
    	"message": "IP 已被封禁30 分钟后重试"
    }
    

    IP 被封禁后,需等待 30 分钟后自动解除,或通过管理后台手动清除 KV删除 block:<IP> 键)。

  • 内部错误:

    • 状态码:500
    {
    	"message": "错误信息"
    }