fix: add auth methods to swagger authtorize

This commit is contained in:
Boris Arzentar 2025-06-30 12:27:53 +02:00
parent e44840c601
commit 5e6bbef0b3
No known key found for this signature in database
GPG key ID: D5CC274C784807B7
2 changed files with 44 additions and 1 deletions

View file

@ -12,6 +12,7 @@ from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse, Response
from fastapi.middleware.cors import CORSMiddleware
from fastapi.exceptions import RequestValidationError
from fastapi.openapi.utils import get_openapi
from cognee.exceptions import CogneeApiError
from cognee.shared.logging_utils import get_logger, setup_logging
@ -75,6 +76,40 @@ app.add_middleware(
)
def custom_openapi():
if app.openapi_schema:
return app.openapi_schema
openapi_schema = get_openapi(
title="Cognee API",
version="1.0.0",
description="Cognee API with Bearer token and Cookie auth",
routes=app.routes,
)
openapi_schema["components"]["securitySchemes"] = {
"BearerAuth": {
"type": "http",
"scheme": "bearer"
},
"CookieAuth": {
"type": "apiKey",
"in": "cookie",
"name": os.getenv("AUTH_TOKEN_COOKIE_NAME", "auth_token")
}
}
openapi_schema["security"] = [
{"BearerAuth": []},
{"CookieAuth": []}
]
app.openapi_schema = openapi_schema
return app.openapi_schema
app.openapi = custom_openapi
@app.exception_handler(RequestValidationError)
async def request_validation_exception_handler(request: Request, exc: RequestValidationError):
if request.url.path == "/api/v1/auth/login":

View file

@ -1,9 +1,17 @@
from cognee.modules.users.authentication.get_api_auth_backend import get_api_auth_backend
from cognee.modules.users.authentication.get_client_auth_backend import get_client_auth_backend
from ..get_fastapi_users import get_fastapi_users
fastapi_users = get_fastapi_users()
get_authenticated_user = fastapi_users.current_user(active=True)
def get_enabled_backends():
api_auth_backend = get_api_auth_backend()
client_auth_backend = get_client_auth_backend()
return [api_auth_backend, client_auth_backend]
get_authenticated_user = fastapi_users.current_user(active=True, get_enabled_backends=get_enabled_backends)
# from types import SimpleNamespace