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:
+14
-1
@@ -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
|
||||
# ---------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user