fix(config): 将前端访问开关限制为仅控制首页
移除用户前端开关对订阅入口、用户 API 与访客接口的拦截, 关闭 `frontend_enable` 时仅让用户首页 `/` 返回空 404。 同时更新后台配置文案、测试用例与模块文档,明确 API、 订阅和节点接口保持原有访问边界。
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
|
||||
## 职责
|
||||
|
||||
- 控制用户前端网页、用户登录注册、用户中心 API、客户端订阅 API 和公开用户展示接口是否对外开放
|
||||
- 保留节点通信 API、管理后台页面、管理 API 和外部回调接口的原有访问边界
|
||||
- 控制用户前端首页 HTML 是否对外开放
|
||||
- 保留订阅/API、节点通信 API、管理后台页面、管理 API 和外部回调接口的原有访问边界
|
||||
- 为后台系统配置提供 `frontend_enable` 开关,默认开启以兼容已有部署
|
||||
|
||||
## 行为规范
|
||||
|
||||
- `frontend_enable` 存储在 `v2_settings`,通过 `admin_setting('frontend_enable', 1)` 读取;缺省值为开启
|
||||
- `EnsureUserFrontendEnabled` 关闭时返回空 404,不渲染用户主题,不输出 `app_name`、站点描述、主题标题或其他站点识别信息
|
||||
- `routes/web.php` 的 `/` 和 `/{subscribe_path}/{token}` 挂载 `user.frontend`,关闭时不会进入主题渲染和订阅控制器
|
||||
- `/api/v1/passport/*`、`/api/v1/user/*`、`/api/v2/user/*`、`/api/v1/client/*`、`/api/v2/client/*` 挂载 `user.frontend`
|
||||
- `/api/v1/guest/plan/fetch` 与 `/api/v1/guest/comm/config` 挂载 `user.frontend`
|
||||
- `/api/v1/guest/payment/notify/*` 与 `/api/v1/guest/telegram/webhook` 保持开放,避免影响支付和 Telegram 回调
|
||||
- `routes/web.php` 的 `/` 挂载 `user.frontend`,关闭时不会进入主题渲染
|
||||
- `/{subscribe_path}/{token}` 保持原有 `client` 中间件,不受 `frontend_enable` 控制
|
||||
- `/api/v1/passport/*`、`/api/v1/user/*`、`/api/v2/user/*`、`/api/v1/client/*`、`/api/v2/client/*` 不挂载 `user.frontend`
|
||||
- `/api/v1/guest/*` 保持原有访问边界,不受 `frontend_enable` 控制
|
||||
- `/api/v1/server/*` 与 `/api/v2/server/*` 不挂载 `user.frontend`,确保 mi-node 拉配置、上报在线和上报流量不受用户前端开关影响
|
||||
- 管理后台路由和管理 API 不受 `frontend_enable` 控制;管理后台自身继续依赖 `secure_path` 与既有后台鉴权
|
||||
|
||||
|
||||
Reference in New Issue
Block a user