cookie-logger / app.py
msmhmorsi
follow cursor
a9ad028
from fastapi import FastAPI, Request, Response, HTTPException, Cookie
from fastapi.responses import JSONResponse
from fastapi.middleware.cors import CORSMiddleware
from typing import Optional
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["https://ancient-time-545042.framer.app"],
allow_credentials=True,
allow_methods=["GET", "POST", "OPTIONS"],
allow_headers=[
"Content-Type",
"Authorization",
"Access-Control-Allow-Credentials",
"Access-Control-Allow-Origin",
"Access-Control-Allow-Headers",
],
expose_headers=["Set-Cookie"]
)
@app.get("/")
def greet_json(request: Request):
response = JSONResponse(content={
"Hello": "World!",
"cookies": request.cookies
})
return response
@app.post("/auth")
async def auth(request: Request):
data = await request.json()
if data.get("username") == "admin" and data.get("password") == "password":
# Create response
response = JSONResponse(
content={"message": "Authentication successful"},
status_code=200
)
# Set cookie with correct parameters for cross-origin
response.set_cookie(
key="comfy_session",
value="dummy_session_value",
httponly=True,
secure=True,
samesite="none", # Required for cross-origin
# Don't set domain to allow the cookie to be set on the Framer domain
max_age=1800, # 30 minutes
path="/"
)
return response
raise HTTPException(status_code=401, detail="Invalid credentials")
@app.get("/protected")
def protected_route(comfy_session: Optional[str] = Cookie(None)):
if comfy_session != "dummy_session_value":
raise HTTPException(status_code=401, detail="Unauthorized")
return {"message": "Access granted to protected route"}