f70dbe4378
移除用户前端开关对订阅入口、用户 API 与访客接口的拦截, 关闭 `frontend_enable` 时仅让用户首页 `/` 返回空 404。 同时更新后台配置文案、测试用例与模块文档,明确 API、 订阅和节点接口保持原有访问边界。
1.8 KiB
1.8 KiB
user-frontend-access
职责
- 控制用户前端首页 HTML 是否对外开放
- 保留订阅/API、节点通信 API、管理后台页面、管理 API 和外部回调接口的原有访问边界
- 为后台系统配置提供
frontend_enable开关,默认开启以兼容已有部署
行为规范
frontend_enable存储在v2_settings,通过admin_setting('frontend_enable', 1)读取;缺省值为开启EnsureUserFrontendEnabled关闭时返回空 404,不渲染用户主题,不输出app_name、站点描述、主题标题或其他站点识别信息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与既有后台鉴权
依赖关系
- 依赖
app/Http/Middleware/EnsureUserFrontendEnabled.php执行访问控制 - 依赖
app/Http/Kernel.php注册user.frontend路由中间件别名 - 依赖
app/Http/Controllers/V2/Admin/ConfigController.php在site配置组返回frontend_enable - 依赖
app/Http/Requests/Admin/ConfigSave.php校验并保存frontend_enable - 依赖
admin-frontend/src/utils/systemConfig.ts在站点设置中渲染“开放用户前端”开关 - 依赖
tests/Feature/UserFrontendAccessToggleTest.php验证默认开启、关闭隐藏和节点 API 不被误拦截