Allow reconnect redirect override
This commit is contained in:
parent
1a7466728a
commit
001731a3a9
@ -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")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user