from fastapi import Request from app.common.context import current_admin_id from app.lib.jwt.jwt import Jwt from app.lib.jwt.token import JwtToken from app.middleware.token.abstract_token_middleware import AbstractTokenMiddleware class AdminTokenMiddleware(AbstractTokenMiddleware): async def parser_token(self, jwt: Jwt, raw_token: str) -> JwtToken: return await jwt.parser_access_token(raw_token) def set_context(self, request: Request, token: JwtToken) -> None: admin_id = token.admin_id current_admin_id.set(admin_id) request.state.current_admin_id = admin_id