падает с 500 2023-05-24 15:15:19 fastapi_jwt_auth.exceptions.MissingTokenError
хотя есть вот такой код
def authjwt_exception_handler(request: Request, exc: AuthJWTException):
return JSONResponse(
status_code=exc.status_code,
content={"detail": exc.message}
)
def include(app: FastAPI) -> None:
"""Include auth exception handlers"""
app.exception_handler(AuthJWTException)(authjwt_exception_handler)
и я вызываю include в мейне
from presentation.v1 import include_routers, include_exception_handlers
from core.settings import load_settings
from core.db import get_session, get_async_sessionmaker
from sqlalchemy.orm import Session
app = FastAPI()
@app.on_event("startup")
async def on_startup():
settings = load_settings()
async_sessionmaker = await get_async_sessionmaker(settings.db)
app.dependency_overrides[Session] = lambda: get_session(async_sessionmaker)
include_routers(app)
include_exception_handlers(app)
а зачем регать хендлеры для исключений в стартапе?
Потому что в шатдауне уже поздно
https://github.com/encode/starlette/blob/master/starlette/applications.py#L118 на момент стартапа мидлварь стек уже есть то, что зарегано - включено не будет
а роутеры тогда почему регаются?
потому что механизмы разные
Обсуждают сегодня