from fastapi import FastAPI, Depends, HTTPException from fastapi.responses import RedirectResponse, JSONResponse from app.cabletv.utils.auth import get_current_user, exchange_code_for_token app = FastAPI() @app.get("/") async def root(): return {"message": "IPTV Updater API"} @app.get("/protected") async def protected_route(user = Depends(get_current_user)): if isinstance(user, RedirectResponse): return user return {"message": "Protected content", "user": user['Username']} @app.get("/auth/callback") async def auth_callback(code: str): try: tokens = exchange_code_for_token(code) # Use id_token instead of access_token response = JSONResponse(content={ "message": "Authentication successful", "id_token": tokens["id_token"] # Changed from access_token }) # Store id_token in cookie response.set_cookie( key="token", value=tokens["id_token"], # Changed from access_token httponly=True, secure=True, samesite="lax" ) return response except Exception as e: raise HTTPException( status_code=400, detail=f"Authentication failed: {str(e)}" )