From 91aa3e1f9513beeeb0d39e86b9a5ab57a76ebfb0 Mon Sep 17 00:00:00 2001 From: kaireewu Date: Sun, 1 Nov 2026 03:09:21 +0800 Subject: [PATCH] docs: describe partial page protection --- DEVELOPMENT.md | 5 ++++- README.md | 4 +++- project.md | 6 ++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 8edff60..c6d2a8d 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -506,7 +506,10 @@ P3 实现说明: - P2 看板**只读**:业务接口只注册 GET,写方法统一返回 `405`; - 数据管理(收藏、忽略、拉黑、移出库、移除黑名单)继续通过 Telegram、CLI 或数据库完成; -- `/api/health` 可匿名;配置 `web.auth_token` 后其他 `/api/*` 要求 Cookie 或 `Authorization: Bearer `; +- `/api/health` 和 `/api/session` 可匿名; +- 首页、榜单、视频/UP、粉丝页面和接口访客可见; +- 配置 `web.auth_token` 后,`/api/candidates`、`/api/system` 和 `/candidates`、`/system` 页面要求 Cookie 或 `Authorization: Bearer `,未登录访问页面会跳转 `/login?next=<原路径>`; +- 未配置 token 时视为无鉴权,全部页面可见; - 只读接口不需要 CSRF;登录 POST 只建立会话,不修改业务数据; - API 返回 JSON;前端不复制热度、状态机或收藏夹归属判断; - 不提供导出接口,结果只通过页面浏览。 diff --git a/README.md b/README.md index 80045e0..fa15529 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,9 @@ uv run python app.py serve --preview --config data/preview/config.json - 粉丝页只绘制粉丝曲线,不叠加视频数据;支持 7/30/90/全部与自选日期,范围超过一年时按每月峰值日期聚合;最近记录默认 14 天并显示较上一成功日的增量; - 前端使用 History API 的干净路径路由(`/rank`、`/video/{aid}`、`/up/{mid}`),不使用 `#/` hash;服务端对未知非静态路径回退 `index.html`; - 候选池和系统状态只读展示,操作入口指向 Telegram/CLI; -- 本地回环地址默认免登录;配置 `web.auth_token` 后启用登录页和 HttpOnly Cookie;非回环地址且未配置 token 时拒绝启动; +- 首页、榜单、视频/UP、粉丝等页面和接口访客可见; +- 配置 `web.auth_token` 后,“候选”和“系统”页面及其接口需要登录,启用登录页和 HttpOnly Cookie;访客的底部导航只显示公开页面; +- 本地回环地址且未配置 token 时视为无鉴权,全部页面可见;非回环地址且未配置 token 时拒绝启动; - 所有业务接口只接受 GET,写方法返回 `405`。 ### 预览数据 diff --git a/project.md b/project.md index 5a2b572..50f3f6e 100644 --- a/project.md +++ b/project.md @@ -690,8 +690,10 @@ fan_delta_cum = follower(d) - follower(首日) ### 9.3 只读边界与鉴权 - P2 Web 业务接口只读,写方法统一 `405`;数据管理继续通过 Telegram/CLI/数据库; -- 本地回环地址且未配置 `web.auth_token` 时免登录; -- 配置 token 后启用登录页 + HttpOnly Cookie,或使用 `Authorization: Bearer `; +- 首页、榜单、视频/UP、粉丝页面和接口对访客开放; +- 配置 `web.auth_token` 后,“候选”和“系统”页面及其接口需要登录,启用登录页 + HttpOnly Cookie,或使用 `Authorization: Bearer `; +- 未登录访问 `/candidates` / `/system` 会跳转 `/login?next=<原路径>`; +- 本地回环地址且未配置 `web.auth_token` 时视为无鉴权,全部页面可见; - 非回环地址且未配置 token 时拒绝启动; - 不做多用户(YAGNI)。