fix: add CORS middleware to allow frontend auth requests

Add CORSMiddleware configured to:
- Allow the frontend origin (web_base_url)
- Allow credentials (cookies)
- Allow all methods and headers

This fixes cross-origin requests between frontend and API
when they're on different subdomains.
This commit is contained in:
Fusion
2026-05-18 23:27:11 +02:00
parent d273535950
commit c067c03662
+13
View File
@@ -2,6 +2,7 @@ import logging
import os import os
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from sqlalchemy import select, text from sqlalchemy import select, text
@@ -12,6 +13,7 @@ from src.api.ssh_keys import router as ssh_keys_router
from src.api.tool_types import router as tool_types_router from src.api.tool_types import router as tool_types_router
from src.api.user_config import router as user_config_router from src.api.user_config import router as user_config_router
from src.api.users import router as users_router from src.api.users import router as users_router
from src.config import Settings
from src.database import SessionLocal, init_database from src.database import SessionLocal, init_database
from src.logging_config import ( from src.logging_config import (
ExceptionLoggingMiddleware, ExceptionLoggingMiddleware,
@@ -25,7 +27,18 @@ log_level = os.getenv("LOG_LEVEL", "INFO").upper()
configure_logging(level=getattr(logging, log_level, logging.INFO)) configure_logging(level=getattr(logging, log_level, logging.INFO))
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
settings = Settings()
app = FastAPI(title="Headquarter API") app = FastAPI(title="Headquarter API")
# Configure CORS - must be before other middleware
app.add_middleware(
CORSMiddleware,
allow_origins=[settings.web_base_url],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.add_middleware(RequestLoggingMiddleware) app.add_middleware(RequestLoggingMiddleware)
app.add_middleware(ExceptionLoggingMiddleware) app.add_middleware(ExceptionLoggingMiddleware)