Skip to content

Commit 68d69b6

Browse files
authored
Merge pull request #87 from vihanga-liyanage/master
Allow to pass endpoints from app level
2 parents e7cb858 + 7923ae3 commit 68d69b6

File tree

2 files changed

+42
-11
lines changed

2 files changed

+42
-11
lines changed

packages/oidc-js/src/utils/op-config.ts

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,13 @@ export const initOPConfiguration = (
198198
}
199199

200200
const serverHost = requestParams.serverOrigin;
201+
let wellKnownEndpoint = serverHost + SERVICE_RESOURCES.wellKnown;
202+
if (requestParams?.endpoints?.wellKnown) {
203+
wellKnownEndpoint = requestParams.endpoints.wellKnown;
204+
}
201205

202206
return axios
203-
.get(serverHost + SERVICE_RESOURCES.wellKnown)
207+
.get(wellKnownEndpoint)
204208
.then((response: { data: OpenIDConfig; status: number}) => {
205209
if (response.status !== 200) {
206210
return Promise.reject(
@@ -211,17 +215,41 @@ export const initOPConfiguration = (
211215
}
212216

213217
setOPConfig(response.data, requestParams);
214-
setAuthorizeEndpoint(response.data.authorization_endpoint, requestParams);
215-
setTokenEndpoint(response.data.token_endpoint, requestParams);
216-
setEndSessionEndpoint(response.data.end_session_endpoint, requestParams);
217-
setJwksUri(response.data.jwks_uri, requestParams);
218-
setRevokeTokenEndpoint(
219-
response.data.token_endpoint.substring(0, response.data.token_endpoint.lastIndexOf("token")) + "revoke",
220-
requestParams
221-
);
218+
if (requestParams?.endpoints?.authorize) {
219+
setAuthorizeEndpoint(requestParams?.endpoints?.authorize, requestParams);
220+
} else {
221+
setAuthorizeEndpoint(response.data.authorization_endpoint, requestParams);
222+
}
223+
if (requestParams?.endpoints?.token) {
224+
setTokenEndpoint(requestParams?.endpoints?.token, requestParams);
225+
} else {
226+
setTokenEndpoint(response.data.token_endpoint, requestParams);
227+
}
228+
if (requestParams?.endpoints?.jwks) {
229+
setJwksUri(requestParams?.endpoints?.jwks, requestParams);
230+
} else {
231+
setJwksUri(response.data.jwks_uri, requestParams);
232+
}
233+
if (requestParams?.endpoints?.logout) {
234+
setEndSessionEndpoint(requestParams?.endpoints?.logout, requestParams);
235+
} else {
236+
setEndSessionEndpoint(response.data.end_session_endpoint, requestParams);
237+
}
238+
if (requestParams?.endpoints?.revoke) {
239+
setRevokeTokenEndpoint(requestParams?.endpoints?.revoke, requestParams);
240+
} else {
241+
setRevokeTokenEndpoint(
242+
response.data.token_endpoint.substring(0, response.data.token_endpoint.lastIndexOf("token")) +
243+
"revoke", requestParams
244+
);
245+
}
222246
setIssuer(response.data.issuer, requestParams);
223247
setClientID(requestParams);
224-
setOIDCSessionIFrameURL(response.data.check_session_iframe, requestParams);
248+
if (requestParams?.endpoints?.oidcSessionIFrame) {
249+
setOIDCSessionIFrameURL(requestParams?.endpoints?.oidcSessionIFrame, requestParams);
250+
} else {
251+
setOIDCSessionIFrameURL(response.data.check_session_iframe, requestParams);
252+
}
225253
setSignInRedirectURL(requestParams.signInRedirectURL, requestParams);
226254
setSignOutRedirectURL(requestParams.signOutRedirectURL, requestParams);
227255
setOPConfigInitiated(requestParams);

packages/oidc-js/src/utils/sign-in.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,10 @@ export function validateIdToken(
220220
}
221221

222222
const issuer = getIssuer(requestParams);
223-
const issuerFromURL = requestParams.serverOrigin + SERVICE_RESOURCES.wellKnown.split("/.well-known")[ 0 ];
223+
let issuerFromURL = requestParams.serverOrigin + SERVICE_RESOURCES.wellKnown.split("/.well-known")[ 0 ];
224+
if (requestParams.endpoints?.wellKnown) {
225+
issuerFromURL = requestParams.endpoints.wellKnown.split("/.well-known")[ 0 ];
226+
}
224227

225228
// Return false if the issuer in the open id config doesn't match
226229
// the issuer in the well known endpoint URL.

0 commit comments

Comments
 (0)