# 全局 JWT 中间件(F2a-10 / F2d-02) **日期**: 2026-05-22 ## 变更 - `server/api/auth_jwt.py`:新增 `JwtAuthMiddleware`,对所有 `/api/*` 请求在路由处理前校验 Bearer JWT;公开前缀见 `PUBLIC_PREFIXES`(含 `/api/install/`、`/api/auth/logout`)。 - `server/main.py`:在 `DbSessionMiddleware` 内层注册中间件(保证 `request.state.db` 可用)。 - `get_current_admin`:复用 `request.state.admin`,避免重复查库。 - 安装模式(无 `.env`)跳过 JWT 中间件,由 `InstallModeMiddleware` 返回 503。 ## 纵深防御 路由层 `Depends(get_current_admin)` 保留;即使新路由漏挂 Depends,中间件仍会返回 401。 ## 验证 ```bash pytest tests/test_step0_infrastructure.py::TestJWTAuth tests/test_nexus_v6.py::TestJWTAuth tests/test_security_unit.py -q ```