28 lines
776 B
Python
28 lines
776 B
Python
from fastapi import APIRouter, HTTPException
|
|
from pydantic import BaseModel
|
|
from common.token.token_manager import TokenManager
|
|
|
|
router = APIRouter()
|
|
token_manager = TokenManager() # Initialize TokenManager
|
|
|
|
|
|
class VerifyTokenRequest(BaseModel):
|
|
token: str
|
|
|
|
|
|
class VerifyTokenResponse(BaseModel):
|
|
valid: bool
|
|
payload: dict
|
|
|
|
|
|
@router.post("/verify-token", response_model=VerifyTokenResponse)
|
|
async def verify_token(request: VerifyTokenRequest):
|
|
"""
|
|
Endpoint to verify if a token is valid and return the payload.
|
|
"""
|
|
try:
|
|
payload = token_manager.decode_token(request.token)
|
|
return VerifyTokenResponse(valid=True, payload=payload)
|
|
except ValueError:
|
|
raise HTTPException(status_code=401, detail="Invalid or expired token")
|