Allow reconnect redirect override

This commit is contained in:
Thigazhezhilan J 2026-03-31 10:24:56 +05:30
parent 1a7466728a
commit 001731a3a9

View File

@ -30,11 +30,15 @@ def _require_user(request: Request):
return user
def _build_saved_broker_login_url(request: Request, user_id: str) -> str:
def _build_saved_broker_login_url(
request: Request,
user_id: str,
redirect_url_override: str | None = None,
) -> str:
creds = get_broker_credentials(user_id)
if not creds:
raise HTTPException(status_code=400, detail="Broker credentials not configured")
redirect_url = (os.getenv("ZERODHA_REDIRECT_URL") or "").strip()
redirect_url = (redirect_url_override or os.getenv("ZERODHA_REDIRECT_URL") or "").strip()
if not redirect_url:
base = str(request.base_url).rstrip("/")
redirect_url = f"{base}/api/broker/callback"
@ -164,14 +168,24 @@ async def zerodha_callback(request: Request, request_token: str = ""):
@router.get("/login")
async def broker_login(request: Request):
user = _require_user(request)
login_url = _build_saved_broker_login_url(request, user["id"])
redirect_url = (
(request.query_params.get("redirectUrl") or request.query_params.get("redirect_url") or "")
.strip()
or None
)
login_url = _build_saved_broker_login_url(request, user["id"], redirect_url)
return RedirectResponse(login_url)
@router.get("/login-url")
async def broker_login_url(request: Request):
user = _require_user(request)
return {"loginUrl": _build_saved_broker_login_url(request, user["id"])}
redirect_url = (
(request.query_params.get("redirectUrl") or request.query_params.get("redirect_url") or "")
.strip()
or None
)
return {"loginUrl": _build_saved_broker_login_url(request, user["id"], redirect_url)}
@router.get("/callback")