Allow reconnect redirect override
This commit is contained in:
parent
1a7466728a
commit
001731a3a9
@ -30,11 +30,15 @@ def _require_user(request: Request):
|
|||||||
return user
|
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)
|
creds = get_broker_credentials(user_id)
|
||||||
if not creds:
|
if not creds:
|
||||||
raise HTTPException(status_code=400, detail="Broker credentials not configured")
|
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:
|
if not redirect_url:
|
||||||
base = str(request.base_url).rstrip("/")
|
base = str(request.base_url).rstrip("/")
|
||||||
redirect_url = f"{base}/api/broker/callback"
|
redirect_url = f"{base}/api/broker/callback"
|
||||||
@ -164,14 +168,24 @@ async def zerodha_callback(request: Request, request_token: str = ""):
|
|||||||
@router.get("/login")
|
@router.get("/login")
|
||||||
async def broker_login(request: Request):
|
async def broker_login(request: Request):
|
||||||
user = _require_user(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)
|
return RedirectResponse(login_url)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/login-url")
|
@router.get("/login-url")
|
||||||
async def broker_login_url(request: Request):
|
async def broker_login_url(request: Request):
|
||||||
user = _require_user(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")
|
@router.get("/callback")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user