用户与权限
PicHost 使用基于角色的访问控制(RBAC):管理员(admin) 与 普通用户(user)。权限在服务端强制,不可仅靠前端绕过。
角色能力
| 能力 | 管理员 | 普通用户 |
|---|---|---|
| 上传图片 | ✓ | ✓ |
| 查看自己的图库 | ✓ | ✓ |
| 查看全部图库 / 上传者标签 | ✓ | — |
存储后端管理(/storage) | ✓ | — |
系统设置(/settings) | ✓ | — |
| 开放注册开关 | ✓ | — |
| 登录人机验证方式(滑块 / Turnstile / Cap) | ✓ | — |
| 全局 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 登录/注册需完成人机验证:默认本地滑块;管理员可在 设置 → 访问控制 切换 Turnstile 或 Cap
- 验证配置错误无法登录时:
docker exec pichost slider重置为本地滑块 - 登录失败有速率限制
标签
- 标签按 用户隔离:普通用户仅管理、筛选自己的标签与图片
- 首页上传完成后可 单张打标 或 批量打标签;图库支持按标签筛选(多标签 OR / AND)与批量打标
- 管理员在 设置 → 标签管理 新建、改色、合并、删除标签;标签仅用于分类,不改变
images/存储路径

操作日志
管理员在 设置 → 操作日志 查看上传、删除、登录、设置变更、标签操作等记录,支持按日期、用户、操作类型、来源筛选。

上传偏好与自动删除
- 上传偏好:管理员在 设置 → 基础设置 配置客户端预压缩、自动复制链接等;普通用户可在首页上传卡片背面调整个人偏好
- 自动删除:管理员可设全局策略;用户可设个人策略。启用后仅影响 之后新上传 的图片
API Token 说明
| 类型 | 谁管理 | 上传归属 | 典型用途 |
|---|---|---|---|
| 全局 Token | 管理员(API 页) | 管理员账号 | Twikoo、站点级脚本 |
| 个人 Token | 各用户(API 页) | 该用户 | 个人博客、私有脚本 |
若设置了环境变量 API_UPLOAD_TOKEN,则全局 Token 被锁定,见 环境变量。