Refactor and enhance token decoding error handling
Improved the `decode_token` function to clarify and extend error handling for token validation and decoding. Enhanced error messages for invalid tokens, added checks for missing claims, and ensured clear differentiation of failure scenarios. Updated imports and added a `scope` field to token response for completeness.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import HTMLResponse
|
||||
@@ -6,6 +8,11 @@ from app.core.config import settings
|
||||
from app.api.main import api_router
|
||||
import logging
|
||||
|
||||
from auth.utils import cleanup_expired_tokens
|
||||
from app.core.database import SessionLocal
|
||||
|
||||
scheduler = AsyncIOScheduler()
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
logger.info(f"Starting app!!!")
|
||||
@@ -25,6 +32,26 @@ app.add_middleware(
|
||||
)
|
||||
|
||||
|
||||
# Create a function that gets its own database session
|
||||
async def scheduled_cleanup():
|
||||
async with SessionLocal() as db:
|
||||
await cleanup_expired_tokens(db)
|
||||
|
||||
@app.on_event("startup")
|
||||
async def start_scheduler():
|
||||
# Run every day at 3 AM
|
||||
scheduler.add_job(
|
||||
scheduled_cleanup,
|
||||
CronTrigger(hour=10, minute=0),
|
||||
id="token_cleanup",
|
||||
name="Clean up expired revoked tokens"
|
||||
)
|
||||
scheduler.start()
|
||||
|
||||
@app.on_event("shutdown")
|
||||
async def stop_scheduler():
|
||||
scheduler.shutdown()
|
||||
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
async def root():
|
||||
return """
|
||||
|
||||
Reference in New Issue
Block a user