17 lines
608 B
Python
17 lines
608 B
Python
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
|