Add slider captcha for web login, VitePress documentation on GitHub Pages, and fixes for gallery delete refresh, pagination jump, and copy-format persistence.
59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
# 用户与权限
|
||
|
||
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 被锁定,见 [环境变量](./configuration.md)。
|
||
|
||
## 相关
|
||
|
||
- [API](./api.md)
|
||
- [Twikoo](./twikoo.md)
|
||
- [存储](./storage.md)
|