Spaces:
Sleeping
Sleeping
File size: 1,928 Bytes
49dca2b 83d3e07 e068917 49dca2b ec584cc e068917 9534137 e068917 a9ad028 e068917 ec584cc 55c4d30 d2bc0ec 49dca2b d2bc0ec b2c6295 49dca2b a9ad028 21bda7d 49dca2b a9ad028 ec55133 a9ad028 ec55133 a9ad028 ec55133 a9ad028 49dca2b 44ce6d8 49dca2b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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"}
|