该技能用于在 Litestar 应用中实现认证,重点是把身份识别与授权分开处理。用途:为应用接入认证中间件与安全后端,管理 JWT 与会话流程,并控制路由的包含与排除。主要能力与流程:先根据客户端和信任边界选择身份机制(会话、JWT 头、JWT Cookie、OAuth2 密码 Bearer 或自定义中间件);在应用作用域通过 on_app_init 或中间件统一挂载认证;显式配置登录、schema、健康检查等公共路由的排除规则;认证建立后再使用 request.user 与 request.auth。决策建议:浏览器优先且服务端管理会话用 SessionAuth;令牌放请求头的 API 客户端用 JWTAuth;浏览器令牌 Cookie 用 JWTCookieAuth;需要密码流令牌签发语义用 OAuth2PasswordBearerAuth;凭据来源或校验逻辑自定义时用 AbstractAuthenticationMiddleware;涉及授权策略与密钥等纵深防御问题时配合 litestar-security。使用限制与规范:认证应与请求解析、授权分离;优先使用内置安全后端,仅当身份来源不匹配时才自定义中间件;排除规则应尽量窄且可审查;身份失败默认归一为 401,除非项目有明确替代;不要把 request.user 当作解析捷径,也不要在被排除路由上假设其可用;避免在路由中手动解析认证头、硬编码密钥。校验要点:受保护端点拒绝缺失或无效凭据;公共路由仅在显式排除时公开;认证路由上 request.user 与 request.auth 类型符合预期;登录与登出行为符合预期;失败与异常处理契约一致;测试覆盖已认证与未认证路径。相关文档见 https://docs.litestar.dev/latest/usage/security/abstract-authentication-middleware.html、https://docs.litestar.dev/latest/usage/security/security-backends.html、https://docs.litestar.dev/latest/usage/security/jwt.html、https://docs.litestar.dev/latest/usage/security/excluding-and-including-endpoints.html。具体安装命令与代码示例暂未提供。
litestar-authentication
编程与开发
更新于 10-15 16:48