Add slider captcha for web login, VitePress documentation on GitHub Pages, and fixes for gallery delete refresh, pagination jump, and copy-format persistence.
2.3 KiB
2.3 KiB
用户与权限
PicHost 使用基于角色的访问控制(RBAC):管理员(admin) 与 普通用户(user)。权限在服务端强制,不可仅靠前端绕过。
角色能力
| 能力 | 管理员 | 普通用户 |
|---|---|---|
| 上传图片 | ✓ | ✓ |
| 查看自己的图库 | ✓ | ✓ |
| 查看全部图库 / 上传者标签 | ✓ | — |
存储后端管理(/storage) |
✓ | — |
系统设置(/settings) |
✓ | — |
| 开放注册开关 | ✓ | — |
| 全局 API Token 管理 | ✓ | — |
| 个人 API Token | ✓ | ✓ |
| 统计页(含注册用户数) | ✓ | 部分 |
| 操作日志 | ✓ | — |
普通用户顶栏:API、统计;用户菜单:修改密码、退出登录。
鉴权场景
| 场景 | 鉴权方式 | 图片归属 / 可见范围 |
|---|---|---|
| 网页上传 | Session Cookie | 当前登录用户 |
| API 上传 + 个人 Token | Auth-Token 头 |
Token 所属用户 |
| API 上传 + 全局 Token | Auth-Token 头 |
管理员(userId 为空) |
Twikoo POST /api/index.php |
表单 token |
与全局 Token 相同 |
| 图库列表 / 搜索 / 删除 | Session 或 Token | 普通用户仅自己;管理员全部 |
图片直链 GET /images/... |
无(Referer 防盗链) | 知道 URL 即可访问 |
注册与账号
- 默认仅管理员可创建用户;管理员可在设置中 开放注册
- 密码使用 scrypt 哈希存储
- Web 登录需先完成滑动拼图验证(拖动滑块对齐缺口)
- 登录失败有速率限制
上传偏好与自动删除
- 上传偏好(首页卡片翻转):客户端预压缩、自动复制链接等,按用户保存
- 自动删除:管理员可设全局策略;用户可设个人策略。启用后仅影响 之后新上传 的图片
API Token 说明
| 类型 | 谁管理 | 上传归属 | 典型用途 |
|---|---|---|---|
| 全局 Token | 管理员(API 页) | 管理员账号 | Twikoo、站点级脚本 |
| 个人 Token | 各用户(API 页) | 该用户 | 个人博客、私有脚本 |
若设置了环境变量 API_UPLOAD_TOKEN,则全局 Token 被锁定,见 环境变量。