添加跨域请求
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
AUTH_DB_PATH=~/.nanobot/auth_service.sqlite3
|
AUTH_DB_PATH=~/.nanobot/auth_service.sqlite3
|
||||||
AUTH_JWT_SECRET=change-this-secret
|
AUTH_JWT_SECRET=change-this-secret
|
||||||
AUTH_TOKEN_TTL_HOURS=24
|
AUTH_TOKEN_TTL_HOURS=24
|
||||||
AUTH_CORS_ORIGINS=*
|
AUTH_CORS_ORIGINS=http://127.0.0.1:5173,http://localhost:5173,http://47.122.113.65:5173
|
||||||
AUTH_VERIFICATION_CODES=code-a,code-b
|
AUTH_VERIFICATION_CODES=code-a,code-b
|
||||||
AUTH_ADMIN_KEY=change-this-admin-key
|
AUTH_ADMIN_KEY=change-this-admin-key
|
||||||
AUTH_HOST=0.0.0.0
|
AUTH_HOST=0.0.0.0
|
||||||
|
|||||||
15
app/main.py
15
app/main.py
@@ -35,6 +35,16 @@ AUTH_VERIFICATION_CODES = {
|
|||||||
AUTH_ADMIN_KEY = os.getenv("AUTH_ADMIN_KEY", "")
|
AUTH_ADMIN_KEY = os.getenv("AUTH_ADMIN_KEY", "")
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_cors_origins(raw: str) -> tuple[bool, list[str]]:
|
||||||
|
value = str(raw or "").strip()
|
||||||
|
if not value:
|
||||||
|
return True, ["*"]
|
||||||
|
items = [o.strip() for o in value.split(",") if o.strip()]
|
||||||
|
if not items or "*" in items:
|
||||||
|
return True, ["*"]
|
||||||
|
return False, items
|
||||||
|
|
||||||
|
|
||||||
def _ensure_db(path_str: str) -> Path:
|
def _ensure_db(path_str: str) -> Path:
|
||||||
path = Path(path_str).expanduser()
|
path = Path(path_str).expanduser()
|
||||||
path.parent.mkdir(parents=True, exist_ok=True)
|
path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
@@ -268,11 +278,12 @@ def _reject_request_with_conn(conn: sqlite3.Connection, request_id: int, note: s
|
|||||||
|
|
||||||
app = FastAPI(title="nanobot-auth-service", version="0.1.0")
|
app = FastAPI(title="nanobot-auth-service", version="0.1.0")
|
||||||
|
|
||||||
origins = ["*"] if AUTH_CORS_ORIGINS.strip() == "*" else [o.strip() for o in AUTH_CORS_ORIGINS.split(",") if o.strip()]
|
allow_all_origins, origins = _parse_cors_origins(AUTH_CORS_ORIGINS)
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
CORSMiddleware,
|
CORSMiddleware,
|
||||||
allow_origins=origins,
|
allow_origins=origins,
|
||||||
allow_credentials=True,
|
# Browsers reject credentialed CORS with wildcard origin.
|
||||||
|
allow_credentials=not allow_all_origins,
|
||||||
allow_methods=["*"],
|
allow_methods=["*"],
|
||||||
allow_headers=["*"],
|
allow_headers=["*"],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user