23 lines
754 B
Python
23 lines
754 B
Python
from starlette.middleware.base import BaseHTTPMiddleware
|
|
from urllib.request import Request
|
|
|
|
from app.common.jwt_check import check_token
|
|
|
|
from app.common.logger_config import logger_http
|
|
|
|
|
|
class LoggerMiddleware(BaseHTTPMiddleware):
|
|
def __init__(self, app):
|
|
super().__init__(app)
|
|
|
|
async def dispatch(self, request: Request, call_next):
|
|
method = request.method
|
|
path = request.url.path
|
|
token = request.headers.get("Authorization")
|
|
user_id = None
|
|
if token:
|
|
decoded_payload = check_token(token)
|
|
user_id = decoded_payload['user_id']
|
|
logger_http.info(f"Path: {path},UserId: {user_id}, Method: {method}")
|
|
response = await call_next(request)
|
|
return response |