# 用户与权限 PicHost 使用基于角色的访问控制(RBAC):**管理员(admin)** 与 **普通用户(user)**。权限在服务端强制,不可仅靠前端绕过。 ## 角色能力 | 能力 | 管理员 | 普通用户 | | ---- | :----: | :------: | | 上传图片 | ✓ | ✓ | | 查看自己的图库 | ✓ | ✓ | | 查看全部图库 / 上传者标签 | ✓ | — | | 存储后端管理(`/storage`) | ✓ | — | | 系统设置(`/settings`) | ✓ | — | | 开放注册开关 | ✓ | — | | 登录人机验证方式(滑块 / Turnstile / Cap) | ✓ | — | | API Token(每账号一个) | ✓ | ✓ | | 图库统计概览(含注册用户数) | ✓ | 部分 | | 标签管理(设置 → 标签管理) | ✓ | — | | 操作日志(设置 → 操作日志) | ✓ | — | 普通用户顶栏:**API**、**图库**;用户菜单:**修改密码**、**退出登录**。 ## 鉴权场景 | 场景 | 鉴权方式 | 图片归属 / 可见范围 | | ---- | -------- | ------------------- | | 网页上传 | Session Cookie | 当前登录用户 | | API 上传 | `Auth-Token` 或表单 `token` | Token 对应账号(遗留 `API_UPLOAD_TOKEN` 归属首个管理员) | | Twikoo `POST /api/index.php` | 表单 `token` | 同上 | | 图库列表 / 搜索 / 删除 | Session 或 Token | 普通用户仅自己;管理员全部 | | 图片直链 `GET /images/...` | 无(Referer 防盗链) | 知道 URL 即可访问 | ## 注册与账号 - 默认仅管理员可创建用户;管理员可在设置中 **开放注册** - 密码使用 scrypt 哈希存储 - Web 登录/注册需完成人机验证:默认本地滑块;管理员可在 **设置 → 访问控制** 切换 Turnstile 或 Cap - 验证配置错误无法登录时:`docker exec pichost slider` 重置为本地滑块 - 登录失败有速率限制 ## 标签 - 标签按 **用户隔离**:普通用户仅管理、筛选自己的标签与图片 - 首页上传完成后可 **单张打标** 或 **批量打标签**;图库支持按标签筛选(多标签 OR / AND)与批量打标 - 管理员在 **设置 → 标签管理** 新建、改色、合并、删除标签;标签仅用于分类,**不改变** `images/` 存储路径 ![批量打标](/screenshots/tags-batch.png) ![标签管理](/screenshots/tags.png) ## 操作日志 管理员在 **设置 → 操作日志** 查看上传、删除、登录、设置变更、标签操作等记录,支持按日期、用户、操作类型、来源筛选。 ![操作日志](/screenshots/logs.png) ## 上传偏好与自动删除 - **上传偏好**:管理员在 **设置 → 基础设置** 配置客户端预压缩、自动复制链接等;普通用户可在首页上传卡片背面调整个人偏好 - **自动删除**:管理员可设全局策略;用户可设个人策略。启用后仅影响 **之后新上传** 的图片 ## API Token - **每个账号一个 Token**(含管理员),在 **API** 页查看或重新生成;首次打开会自动创建 - 上传、`tagNames` 打标、图库接口均归属 **该 Token 所属账号** - 环境变量 **`API_UPLOAD_TOKEN`**(旧部署)仍可作为鉴权密钥,上传归属 **首个管理员**,见 [环境变量](./configuration.md) ## 相关 - [API](./api.md) - [Twikoo](./twikoo.md) - [存储](./storage.md)