文档安全与部署
中间件和安全
Nexy 在 FastAPI 和 Starlette 上运行,因此它们的中间件适用。常见的是 nexyconfig.py中的一行。
from nexy.core.models import NexyConfigModel class NexyConfig(NexyConfigModel): useCORS = { "allow_origins": ["https://app.example.com"], "allow_methods": ["GET", "POST"], "allow_credentials": True, } useGZip = {"minimum_size": 1000} useTrustedHost = {"allowed_hosts": ["example.com", "*.example.com"]} useHTTPSRedirect = True useSession = {"secret_key": "change-me"}每个 use* 字典都作为关键字参数传递给匹配的 Starlette 中间件:CORSMiddleware、GZipMiddleware、TrustedHostMiddleware、SessionMiddleware。
您自己的中间件
from my_app.middleware import RequestIdMiddleware class NexyConfig(NexyConfigModel): useMiddlewares = [RequestIdMiddleware]useMiddlewares 采用 ASGI 中间件类。
HTTPS
直接使用 useSslKeyfile 和 useSslCertfile 提供 HTTPS,或在反向代理处终止 TLS 并设置 useHTTPSRedirect。在开发过程中,Vite 开发服务器保持在 Nexy 源后面的环回 HTTP 上,因此 TLS 永远不会到达它。
生产清单
useDocs = False如果 OpenAPI 架构不应公开。useTrustedHost设置为您的域,以阻止主机标头攻击。useCORS具有明确的来源,绝不["*"]与凭证一起。- 一个真正的会话
secret_key,从环境中读取。 - 传递给客户端组件的属性由 Nexy 进行 HTML 转义。不要在模板中标记用户输入
| safe。
守卫和依赖
每个路由的保护使用 FastAPI 依赖项。路由目录中的 dependencies.py 适用于其下面的所有内容:请参阅 依赖项 。在模块化路由器中使用@UseGuard。