From f7b48a67b6e12e7ac61e77a8688664de915c059d Mon Sep 17 00:00:00 2001 From: Dave Berner Date: Thu, 18 Jan 2024 07:17:42 +1100 Subject: [PATCH] feat: allow multiple audiences --- src/createKindeClient.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/createKindeClient.ts b/src/createKindeClient.ts index 95c1792..74ba94e 100644 --- a/src/createKindeClient.ts +++ b/src/createKindeClient.ts @@ -295,10 +295,6 @@ const createKindeClient = async ( searchParams.start_page = start_page; } - if (audience) { - searchParams.audience = audience; - } - if (org_code) { searchParams.org_code = org_code; } @@ -308,9 +304,21 @@ const createKindeClient = async ( searchParams.org_name = org_name; } - url.search = String( - new URLSearchParams(Object.assign(authUrlParams, searchParams)) + const urlSearchParams = new URLSearchParams( + Object.assign(authUrlParams, searchParams) ); + + if (audience) { + /* if multiple audiences requested it should appear multiple times in the query string */ + audience + .trim() + .split(/\s+/) + .forEach((aud) => { + urlSearchParams.append('audience', aud); + }); + } + url.search = String(urlSearchParams); + window.location.href = url.toString(); };