Skip to content

Commit fa97a5c

Browse files
committed
CORS issue
1 parent 8a7960d commit fa97a5c

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

core/api.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,22 @@ async def lifespan(app_instance: FastAPI):
147147
# Initialize service
148148
settings = get_settings()
149149

150-
# Add SessionMiddleware
151-
app.add_middleware(SessionMiddleware, secret_key=settings.SESSION_SECRET_KEY)
150+
# ---------------------------------------------------------------------------
151+
# Session cookie settings
152+
# • Self-hosted / local dev → default Starlette behaviour (SameSite=Lax)
153+
# • Cloud (separate frontend & api domains) → SameSite=None; Secure so the
154+
# browser will include the cookie in cross-site requests (e.g. api ↔ www).
155+
# ---------------------------------------------------------------------------
156+
157+
if settings.MODE == "cloud":
158+
app.add_middleware(
159+
SessionMiddleware,
160+
secret_key=settings.SESSION_SECRET_KEY,
161+
same_site="none", # Allow cross-site requests
162+
https_only=True, # Cookie is Secure (required when SameSite=None)
163+
)
164+
else:
165+
app.add_middleware(SessionMiddleware, secret_key=settings.SESSION_SECRET_KEY)
152166

153167
# Initialize database
154168
if not settings.POSTGRES_URI:

0 commit comments

Comments
 (0)