feat: implement ORCID OAuth callback and update environment configuration

- Added ORCID_REDIRECT_URI to docker-compose for OAuth integration.
- Introduced a new callback endpoint to handle ORCID login and token exchange.
- Refactored authentication logic to streamline the OAuth process.
- Ensured local environment variables are loaded for development.
This commit is contained in:
Mireya Cueto Garrido
2026-04-29 12:19:41 +02:00
parent fec26089ed
commit b49152946e
4 changed files with 52 additions and 19 deletions
+14 -1
View File
@@ -1,10 +1,14 @@
from fastapi import FastAPI
from fastapi import Depends, FastAPI
from fastapi.middleware.cors import CORSMiddleware
from sqlalchemy.orm import Session
from app.db.session import init_db
from app.db.session import get_db
from app.api.researchers import router as researchers_router
from app.api.export import router as export_router
from app.api.auth import router as auth_router
from app.api.auth import _complete_oauth_login
from app.schema.auth import OrcidLoginResponseSchema
from app.scheduler.sync_scheduler import start_scheduler
@@ -35,6 +39,15 @@ def health():
return {"status": "ok"}
@app.get("/callback", response_model=OrcidLoginResponseSchema)
def oauth_callback_root(code: str, db: Session = Depends(get_db)):
"""
Alias para probar redirect URIs como `https://127.0.0.1/callback` en local.
Intercambia el code con ORCID y emite el JWT.
"""
return _complete_oauth_login(code=code, db=db)
# ---------------------------------------------------------
# Registrar routers
# ---------------------------------------------------------