taolib.testing.auth.fastapi.middleware#
FastAPI 认证中间件。
提供 ASGI 中间件,自动填充 request.state.user。
Classes#
认证中间件。 |
|
简化版认证中间件。 |
Module Contents#
- class taolib.testing.auth.fastapi.middleware.AuthMiddleware(app: Any, auth_dependency: collections.abc.Callable[Ellipsis, collections.abc.Coroutine[Any, Any, taolib.testing.auth.models.AuthenticatedUser]], exclude_paths: list[str] | None = None)#
Bases:
starlette.middleware.base.BaseHTTPMiddleware认证中间件。
在请求处理前尝试认证,成功时将用户信息附加到
request.state.user。- 参数:
app -- ASGI 应用
auth_dependency -- 认证依赖函数(与
create_auth_dependency返回的函数相同)exclude_paths -- 不需要认证的路径前缀列表
- _auth_dependency#
- _exclude_paths#
- async dispatch(request: fastapi.Request, call_next: starlette.middleware.base.RequestResponseEndpoint) fastapi.Response#
处理请求认证。
- class taolib.testing.auth.fastapi.middleware.SimpleAuthMiddleware(app: Any, jwt_service: Any, blacklist: Any = None, api_key_lookup: Any = None, exclude_paths: list[str] | None = None)#
Bases:
starlette.middleware.base.BaseHTTPMiddleware简化版认证中间件。
直接使用 JWTService 和黑名单进行认证,不依赖 FastAPI 的依赖注入系统。 适用于需要在中间件层面进行认证的场景。
- 参数:
app -- ASGI 应用
jwt_service -- JWT 令牌服务
blacklist -- 令牌黑名单实现
api_key_lookup -- API 密钥查找实现
exclude_paths -- 不需要认证的路径前缀列表
- _jwt_service#
- _blacklist = None#
- _api_key_lookup = None#
- _exclude_paths#
- async dispatch(request: fastapi.Request, call_next: starlette.middleware.base.RequestResponseEndpoint) fastapi.Response#
处理请求认证。