oidc-spa 8.1.10 → 8.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend.d.ts +27 -6
- package/backend.js +124 -139
- package/backend.js.map +1 -1
- package/core/Oidc.d.ts +28 -4
- package/core/createOidc.d.ts +12 -3
- package/core/createOidc.js +1 -1
- package/core/createOidc.js.map +1 -1
- package/core/earlyInit.d.ts +1 -0
- package/core/earlyInit.js +11 -4
- package/core/earlyInit.js.map +1 -1
- package/core/loginOrGoToAuthServer.js +8 -3
- package/core/loginOrGoToAuthServer.js.map +1 -1
- package/core/oidcClientTsUserToTokens.d.ts +1 -1
- package/core/oidcClientTsUserToTokens.js.map +1 -1
- package/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
- package/core/requiredPostHydrationReplaceNavigationUrl.js +12 -0
- package/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
- package/entrypoint.d.ts +1 -0
- package/entrypoint.js +3 -1
- package/entrypoint.js.map +1 -1
- package/esm/angular.d.ts +14 -4
- package/esm/angular.js +155 -10
- package/esm/angular.js.map +1 -1
- package/esm/backend.d.ts +48 -0
- package/esm/backend.js +259 -0
- package/esm/backend.js.map +1 -0
- package/esm/core/Oidc.d.ts +28 -4
- package/esm/core/createOidc.d.ts +12 -3
- package/esm/core/createOidc.js +1 -1
- package/esm/core/createOidc.js.map +1 -1
- package/esm/core/earlyInit.d.ts +1 -0
- package/esm/core/earlyInit.js +11 -4
- package/esm/core/earlyInit.js.map +1 -1
- package/esm/core/loginOrGoToAuthServer.js +8 -3
- package/esm/core/loginOrGoToAuthServer.js.map +1 -1
- package/esm/core/oidcClientTsUserToTokens.d.ts +1 -1
- package/esm/core/oidcClientTsUserToTokens.js.map +1 -1
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.js +8 -0
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
- package/esm/entrypoint.d.ts +1 -0
- package/esm/entrypoint.js +1 -0
- package/esm/entrypoint.js.map +1 -1
- package/esm/mock/oidc.d.ts +1 -1
- package/esm/mock/oidc.js.map +1 -1
- package/esm/react/react.d.ts +1 -1
- package/esm/tanstack-start/react/accessTokenValidation_rfc9068.d.ts +12 -0
- package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js +95 -0
- package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js.map +1 -0
- package/esm/tanstack-start/react/apiBuilder.d.ts +27 -0
- package/esm/tanstack-start/react/apiBuilder.js +58 -0
- package/esm/tanstack-start/react/apiBuilder.js.map +1 -0
- package/esm/tanstack-start/react/createOidcSpaApi.d.ts +9 -0
- package/esm/tanstack-start/react/createOidcSpaApi.js +679 -0
- package/esm/tanstack-start/react/createOidcSpaApi.js.map +1 -0
- package/esm/tanstack-start/react/index.d.ts +3 -0
- package/esm/tanstack-start/react/index.js +4 -0
- package/esm/tanstack-start/react/index.js.map +1 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.d.ts +4 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js +8 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js.map +1 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.d.ts +4 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js +86 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js.map +1 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.d.ts +1 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js +13 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js.map +1 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.d.ts +2 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js +3 -0
- package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js.map +1 -0
- package/esm/tanstack-start/react/types.d.ts +355 -0
- package/esm/tanstack-start/react/types.js +2 -0
- package/esm/tanstack-start/react/types.js.map +1 -0
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.d.ts +2 -0
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js +25 -0
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js.map +1 -0
- package/esm/tools/GetterOrDirectValue.d.ts +1 -0
- package/esm/tools/GetterOrDirectValue.js +2 -0
- package/esm/tools/GetterOrDirectValue.js.map +1 -0
- package/esm/tools/ZodSchemaLike.d.ts +3 -0
- package/esm/tools/ZodSchemaLike.js +2 -0
- package/esm/tools/ZodSchemaLike.js.map +1 -0
- package/esm/tools/inferIsViteDev.d.ts +1 -0
- package/esm/tools/inferIsViteDev.js +6 -0
- package/esm/tools/inferIsViteDev.js.map +1 -0
- package/esm/tools/infer_import_meta_env_BASE_URL.d.ts +1 -0
- package/esm/tools/infer_import_meta_env_BASE_URL.js +15 -0
- package/esm/tools/infer_import_meta_env_BASE_URL.js.map +1 -0
- package/esm/tools/tsafe/uncapitalize.d.ts +2 -0
- package/esm/tools/tsafe/uncapitalize.js +5 -0
- package/esm/tools/tsafe/uncapitalize.js.map +1 -0
- package/esm/vendor/backend/evt.d.ts +2 -0
- package/esm/vendor/backend/evt.js +3286 -0
- package/esm/vendor/backend/jose.d.ts +1 -0
- package/esm/vendor/backend/jose.js +3546 -0
- package/esm/vendor/backend/tsafe.d.ts +5 -0
- package/esm/vendor/backend/tsafe.js +68 -0
- package/esm/vendor/backend/zod.d.ts +1 -0
- package/esm/vendor/backend/zod.js +4023 -0
- package/esm/vendor/frontend/worker-timers.js +261 -1
- package/mock/oidc.d.ts +1 -1
- package/mock/oidc.js.map +1 -1
- package/package.json +40 -4
- package/react/react.d.ts +1 -1
- package/src/angular.ts +224 -9
- package/src/backend.ts +201 -166
- package/src/core/Oidc.ts +41 -11
- package/src/core/createOidc.ts +12 -3
- package/src/core/earlyInit.ts +19 -4
- package/src/core/loginOrGoToAuthServer.ts +11 -3
- package/src/core/oidcClientTsUserToTokens.ts +2 -2
- package/src/core/requiredPostHydrationReplaceNavigationUrl.ts +11 -0
- package/src/entrypoint.ts +1 -0
- package/src/mock/oidc.ts +2 -2
- package/src/react/react.tsx +1 -1
- package/src/tanstack-start/react/accessTokenValidation_rfc9068.ts +135 -0
- package/src/tanstack-start/react/apiBuilder.ts +151 -0
- package/src/tanstack-start/react/createOidcSpaApi.tsx +1011 -0
- package/src/tanstack-start/react/index.ts +5 -0
- package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.ts +8 -0
- package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.tsx +127 -0
- package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.ts +15 -0
- package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.ts +2 -0
- package/src/tanstack-start/react/types.tsx +415 -0
- package/src/tanstack-start/react/withHandlingOidcPostLoginNavigation.tsx +35 -0
- package/src/tools/GetterOrDirectValue.ts +1 -0
- package/src/tools/ZodSchemaLike.ts +3 -0
- package/src/tools/getThisCodebaseRootDirPath_cjs.ts +19 -0
- package/src/tools/inferIsViteDev.ts +6 -0
- package/src/tools/infer_import_meta_env_BASE_URL.ts +19 -0
- package/src/tools/tsafe/uncapitalize.ts +4 -0
- package/src/vendor/backend/jose.ts +1 -0
- package/src/vendor/build-runtime/babel.ts +6 -0
- package/src/vendor/build-runtime/magic-string.ts +3 -0
- package/src/vite-plugin/detectProjectType.ts +20 -0
- package/src/vite-plugin/excludeModuleExportFromOptimizedDeps.ts +20 -0
- package/src/vite-plugin/handleClientEntrypoint.ts +260 -0
- package/src/vite-plugin/index.ts +1 -0
- package/src/vite-plugin/transformCreateFileRoute.ts +240 -0
- package/src/vite-plugin/vite-plugin.ts +54 -0
- package/tools/GetterOrDirectValue.d.ts +1 -0
- package/tools/GetterOrDirectValue.js +3 -0
- package/tools/GetterOrDirectValue.js.map +1 -0
- package/tools/ZodSchemaLike.d.ts +3 -0
- package/tools/ZodSchemaLike.js +3 -0
- package/tools/ZodSchemaLike.js.map +1 -0
- package/tools/getThisCodebaseRootDirPath_cjs.d.ts +2 -0
- package/tools/getThisCodebaseRootDirPath_cjs.js +53 -0
- package/tools/getThisCodebaseRootDirPath_cjs.js.map +1 -0
- package/tools/tsafe/uncapitalize.d.ts +2 -0
- package/tools/tsafe/uncapitalize.js +8 -0
- package/tools/tsafe/uncapitalize.js.map +1 -0
- package/vendor/backend/jose.d.ts +1 -0
- package/vendor/backend/jose.js +3 -0
- package/vendor/build-runtime/babel.d.ts +6 -0
- package/vendor/build-runtime/babel.js +3 -0
- package/vendor/build-runtime/magic-string.d.ts +2 -0
- package/vendor/build-runtime/magic-string.js +2 -0
- package/vendor/frontend/oidc-client-ts.js +0 -2
- package/vite-plugin/detectProjectType.d.ts +10 -0
- package/vite-plugin/detectProjectType.js +15 -0
- package/vite-plugin/detectProjectType.js.map +1 -0
- package/vite-plugin/excludeModuleExportFromOptimizedDeps.d.ts +4 -0
- package/vite-plugin/excludeModuleExportFromOptimizedDeps.js +50 -0
- package/vite-plugin/excludeModuleExportFromOptimizedDeps.js.map +1 -0
- package/vite-plugin/handleClientEntrypoint.d.ts +10 -0
- package/vite-plugin/handleClientEntrypoint.js +211 -0
- package/vite-plugin/handleClientEntrypoint.js.map +1 -0
- package/vite-plugin/index.d.ts +1 -0
- package/vite-plugin/index.js +6 -0
- package/vite-plugin/index.js.map +1 -0
- package/vite-plugin/transformCreateFileRoute.d.ts +10 -0
- package/vite-plugin/transformCreateFileRoute.js +173 -0
- package/vite-plugin/transformCreateFileRoute.js.map +1 -0
- package/vite-plugin/vite-plugin.d.ts +5 -0
- package/vite-plugin/vite-plugin.js +46 -0
- package/vite-plugin/vite-plugin.js.map +1 -0
- package/src/vendor/backend/jsonwebtoken.ts +0 -1
- package/src/vendor/backend/node-fetch.ts +0 -2
- package/src/vendor/backend/node-jose.ts +0 -1
- package/vendor/backend/jsonwebtoken.d.ts +0 -1
- package/vendor/backend/jsonwebtoken.js +0 -3
- package/vendor/backend/node-fetch.d.ts +0 -2
- package/vendor/backend/node-fetch.js +0 -2
- package/vendor/backend/node-jose.d.ts +0 -1
- package/vendor/backend/node-jose.js +0 -3
package/esm/angular.js
CHANGED
|
@@ -9,11 +9,12 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _AbstractOidcService_instances, _AbstractOidcService_autoLogoutWarningDurationSeconds, _AbstractOidcService_dState, _AbstractOidcService_initialize, _AbstractOidcService_getPrInitializedNotResolvedErrorMessage, _AbstractOidcService_getState, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage, _AbstractOidcService_getOidc;
|
|
13
|
-
import { BehaviorSubject } from "rxjs";
|
|
12
|
+
var _AbstractOidcService_instances, _AbstractOidcService_autoLogoutWarningDurationSeconds, _AbstractOidcService_isRunningGetParams, _AbstractOidcService_deadlockDetectionTimer, _AbstractOidcService_dState, _AbstractOidcService_initialize, _AbstractOidcService_getPrInitializedNotResolvedErrorMessage, _AbstractOidcService_getState, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage, _AbstractOidcService_getOidc, _AbstractOidcService_isUserLoggedIn_override, _AbstractOidcService_decodedIdToken$, _AbstractOidcService_$decodedIdToken, _AbstractOidcService_isNewBrowserSession_override;
|
|
13
|
+
import { BehaviorSubject, from, switchMap, Subject } from "rxjs";
|
|
14
14
|
import { Deferred } from "./tools/Deferred";
|
|
15
15
|
import { assert, is } from "./tools/tsafe/assert";
|
|
16
|
-
import {
|
|
16
|
+
import { uncapitalize } from "./tools/tsafe/uncapitalize";
|
|
17
|
+
import { createObjectThatThrowsIfAccessed, AccessError } from "./tools/createObjectThatThrowsIfAccessed";
|
|
17
18
|
import { inject, makeEnvironmentProviders, provideAppInitializer } from "@angular/core";
|
|
18
19
|
import { toSignal } from "@angular/core/rxjs-interop";
|
|
19
20
|
import { Router } from "@angular/router";
|
|
@@ -27,9 +28,14 @@ export class AbstractOidcService {
|
|
|
27
28
|
this.decodedIdTokenSchema = undefined;
|
|
28
29
|
this.mockDecodedIdToken = undefined;
|
|
29
30
|
_AbstractOidcService_autoLogoutWarningDurationSeconds.set(this, 45);
|
|
31
|
+
_AbstractOidcService_isRunningGetParams.set(this, false);
|
|
32
|
+
this.allowDecodedIdTokenAccessInShouldInjectAccessToken = false;
|
|
33
|
+
_AbstractOidcService_deadlockDetectionTimer.set(this, undefined);
|
|
30
34
|
_AbstractOidcService_dState.set(this, new Deferred());
|
|
31
35
|
this.prInitialized = __classPrivateFieldGet(this, _AbstractOidcService_dState, "f").pr.then(() => true);
|
|
32
|
-
this
|
|
36
|
+
_AbstractOidcService_isUserLoggedIn_override.set(this, undefined);
|
|
37
|
+
this.decodedIdTokenAccess = undefined;
|
|
38
|
+
_AbstractOidcService_decodedIdToken$.set(this, (() => {
|
|
33
39
|
const decodedIdToken$ = new BehaviorSubject(createObjectThatThrowsIfAccessed({
|
|
34
40
|
debugMessage: __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getPrInitializedNotResolvedErrorMessage).call(this, {
|
|
35
41
|
callerName: "decodedIdToken"
|
|
@@ -68,8 +74,8 @@ export class AbstractOidcService {
|
|
|
68
74
|
});
|
|
69
75
|
})();
|
|
70
76
|
return decodedIdToken$;
|
|
71
|
-
})();
|
|
72
|
-
this
|
|
77
|
+
})());
|
|
78
|
+
_AbstractOidcService_$decodedIdToken.set(this, toSignal(this.decodedIdToken$, { requireSync: true }));
|
|
73
79
|
this.$secondsLeftBeforeAutoLogout = (() => {
|
|
74
80
|
const secondsLeftBeforeAutoLogout$ = new BehaviorSubject(null);
|
|
75
81
|
(async () => {
|
|
@@ -92,6 +98,7 @@ export class AbstractOidcService {
|
|
|
92
98
|
})();
|
|
93
99
|
return toSignal(secondsLeftBeforeAutoLogout$, { requireSync: true });
|
|
94
100
|
})();
|
|
101
|
+
_AbstractOidcService_isNewBrowserSession_override.set(this, undefined);
|
|
95
102
|
}
|
|
96
103
|
static provide(params) {
|
|
97
104
|
const paramsOrGetParams = params;
|
|
@@ -105,7 +112,12 @@ export class AbstractOidcService {
|
|
|
105
112
|
const [{ createOidc }, { autoLogoutWarningDurationSeconds, ...params }] = await Promise.all([
|
|
106
113
|
import("./core"),
|
|
107
114
|
typeof paramsOrGetParams === "function"
|
|
108
|
-
?
|
|
115
|
+
? (async () => {
|
|
116
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isRunningGetParams, true, "f");
|
|
117
|
+
const params = await paramsOrGetParams();
|
|
118
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isRunningGetParams, false, "f");
|
|
119
|
+
return params;
|
|
120
|
+
})()
|
|
109
121
|
: paramsOrGetParams
|
|
110
122
|
]);
|
|
111
123
|
if (autoLogoutWarningDurationSeconds !== undefined) {
|
|
@@ -169,6 +181,121 @@ export class AbstractOidcService {
|
|
|
169
181
|
})
|
|
170
182
|
]);
|
|
171
183
|
}
|
|
184
|
+
static createBearerInterceptor(params) {
|
|
185
|
+
const { shouldInjectAccessToken: getShouldInjectAccessToken } = params;
|
|
186
|
+
return (req, next) => {
|
|
187
|
+
const instance = inject(this);
|
|
188
|
+
let shouldInjectAccessToken = undefined;
|
|
189
|
+
const shouldInjectAccessTokenByState = [];
|
|
190
|
+
let isDecodedIdTokenAccessed = false;
|
|
191
|
+
(instance.decodedIdTokenAccess = new Subject()).subscribe(() => (isDecodedIdTokenAccessed = true));
|
|
192
|
+
try {
|
|
193
|
+
shouldInjectAccessToken = getShouldInjectAccessToken(req);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (!(error instanceof OidcAccessedTooEarlyError) && !(error instanceof AccessError)) {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (shouldInjectAccessToken === undefined) {
|
|
201
|
+
for (const isUserLoggedIn of [false, true]) {
|
|
202
|
+
for (const isNewBrowserSession of isUserLoggedIn ? [false, true] : [undefined]) {
|
|
203
|
+
let shouldInjectAccessTokenOrError;
|
|
204
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isUserLoggedIn_override, isUserLoggedIn, "f");
|
|
205
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isNewBrowserSession_override, isNewBrowserSession, "f");
|
|
206
|
+
try {
|
|
207
|
+
shouldInjectAccessTokenOrError = getShouldInjectAccessToken(req);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
shouldInjectAccessTokenOrError = { error };
|
|
211
|
+
}
|
|
212
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isUserLoggedIn_override, undefined, "f");
|
|
213
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_isNewBrowserSession_override, undefined, "f");
|
|
214
|
+
shouldInjectAccessTokenByState.push({
|
|
215
|
+
isUserLoggedIn,
|
|
216
|
+
isNewBrowserSession,
|
|
217
|
+
shouldInjectAccessTokenOrError
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
instance.decodedIdTokenAccess = undefined;
|
|
223
|
+
if (!instance.providerAwaitsInitialization &&
|
|
224
|
+
isDecodedIdTokenAccessed &&
|
|
225
|
+
!instance.allowDecodedIdTokenAccessInShouldInjectAccessToken) {
|
|
226
|
+
throw new Error("oidc-spa: See https://docs.oidc-spa.dev/release-notes/reading-decodedaccesstoken-within-shouldinjectaccesstoken");
|
|
227
|
+
}
|
|
228
|
+
if (shouldInjectAccessToken === false ||
|
|
229
|
+
(shouldInjectAccessToken === undefined &&
|
|
230
|
+
shouldInjectAccessTokenByState.every(({ shouldInjectAccessTokenOrError }) => shouldInjectAccessTokenOrError === false))) {
|
|
231
|
+
return next(req);
|
|
232
|
+
}
|
|
233
|
+
if (__classPrivateFieldGet(instance, _AbstractOidcService_isRunningGetParams, "f") && __classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f") === undefined) {
|
|
234
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_deadlockDetectionTimer, setTimeout(() => {
|
|
235
|
+
const name = this.name.replace(/^_/, "");
|
|
236
|
+
switch (shouldInjectAccessToken) {
|
|
237
|
+
case false:
|
|
238
|
+
assert(false);
|
|
239
|
+
case true:
|
|
240
|
+
console.warn([
|
|
241
|
+
"oidc-spa: Probable deadlock detected!",
|
|
242
|
+
`Request ${req.method} ${req.urlWithParams} requires an access token,`,
|
|
243
|
+
`but this request is probably being made inside the async callback of`,
|
|
244
|
+
`${name}.provide(async () => {...}).`,
|
|
245
|
+
"At this point the access token cannot exist yet, initialization depends on this request itself."
|
|
246
|
+
].join(" "));
|
|
247
|
+
break;
|
|
248
|
+
case undefined:
|
|
249
|
+
console.warn([
|
|
250
|
+
"oidc-spa: Probable deadlock detected!",
|
|
251
|
+
`While evaluating shouldInjectAccessToken(req) for ${req.method} ${req.urlWithParams},`,
|
|
252
|
+
"you accessed synchronous properties of",
|
|
253
|
+
`\`${uncapitalize(name)} = inject(${name})\` that`,
|
|
254
|
+
"are only available after initialization completes.",
|
|
255
|
+
`Requests made inside the ${name}.provide(async () => {...}) callback`,
|
|
256
|
+
`(typically to fetch the params), should not trigger a read of `,
|
|
257
|
+
`${uncapitalize(name)}.isUserLoggedIn or other properties inside shouldInjectAccessToken()`,
|
|
258
|
+
"This creates a causality violation.",
|
|
259
|
+
"Reorganize your shouldInjectAccessToken implementation to exit early with `false` in those case,",
|
|
260
|
+
"before accessing the property."
|
|
261
|
+
].join(" "));
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}, 4000), "f");
|
|
265
|
+
}
|
|
266
|
+
return from(instance.getAccessToken()).pipe(switchMap(({ accessToken }) => {
|
|
267
|
+
if (__classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f") !== undefined) {
|
|
268
|
+
clearTimeout(__classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f"));
|
|
269
|
+
__classPrivateFieldSet(instance, _AbstractOidcService_deadlockDetectionTimer, undefined, "f");
|
|
270
|
+
}
|
|
271
|
+
if (shouldInjectAccessToken === undefined) {
|
|
272
|
+
const match = shouldInjectAccessTokenByState.find(({ isUserLoggedIn, isNewBrowserSession }) => isUserLoggedIn === instance.isUserLoggedIn &&
|
|
273
|
+
isNewBrowserSession ===
|
|
274
|
+
(instance.isUserLoggedIn ? instance.isNewBrowserSession : undefined));
|
|
275
|
+
assert(match !== undefined);
|
|
276
|
+
const { shouldInjectAccessTokenOrError } = match;
|
|
277
|
+
if (typeof shouldInjectAccessTokenOrError !== "boolean") {
|
|
278
|
+
const { error } = shouldInjectAccessTokenOrError;
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
shouldInjectAccessToken = shouldInjectAccessTokenOrError;
|
|
282
|
+
}
|
|
283
|
+
if (!shouldInjectAccessToken) {
|
|
284
|
+
return next(req);
|
|
285
|
+
}
|
|
286
|
+
if (!instance.isUserLoggedIn) {
|
|
287
|
+
throw new OidcAccessedTooEarlyError([
|
|
288
|
+
`oidc-spa: attempted to inject an Authorization bearer token`,
|
|
289
|
+
`for ${req.method} ${req.urlWithParams} but the user is not logged in.`,
|
|
290
|
+
`You shouldn't be attempting to call API endpoint that require authentication`,
|
|
291
|
+
`when the user isn't logged in.`
|
|
292
|
+
].join(" "));
|
|
293
|
+
}
|
|
294
|
+
assert(accessToken !== undefined);
|
|
295
|
+
return next(req.clone({ setHeaders: { Authorization: `Bearer ${accessToken}` } }));
|
|
296
|
+
}));
|
|
297
|
+
};
|
|
298
|
+
}
|
|
172
299
|
static get enforceLoginGuard() {
|
|
173
300
|
const canActivateFn = (async (route) => {
|
|
174
301
|
const instance = inject(this);
|
|
@@ -201,7 +328,8 @@ export class AbstractOidcService {
|
|
|
201
328
|
return __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "clientId" }).params.clientId;
|
|
202
329
|
}
|
|
203
330
|
get isUserLoggedIn() {
|
|
204
|
-
return __classPrivateFieldGet(this,
|
|
331
|
+
return (__classPrivateFieldGet(this, _AbstractOidcService_isUserLoggedIn_override, "f") ??
|
|
332
|
+
__classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "isUserLoggedIn" }).isUserLoggedIn);
|
|
205
333
|
}
|
|
206
334
|
async login(params) {
|
|
207
335
|
await this.prInitialized;
|
|
@@ -242,6 +370,14 @@ export class AbstractOidcService {
|
|
|
242
370
|
}
|
|
243
371
|
return oidc.goToAuthServer(params);
|
|
244
372
|
}
|
|
373
|
+
get decodedIdToken$() {
|
|
374
|
+
this.decodedIdTokenAccess?.next();
|
|
375
|
+
return __classPrivateFieldGet(this, _AbstractOidcService_decodedIdToken$, "f");
|
|
376
|
+
}
|
|
377
|
+
get $decodedIdToken() {
|
|
378
|
+
this.decodedIdTokenAccess?.next();
|
|
379
|
+
return __classPrivateFieldGet(this, _AbstractOidcService_$decodedIdToken, "f");
|
|
380
|
+
}
|
|
245
381
|
async getAccessToken() {
|
|
246
382
|
await this.prInitialized;
|
|
247
383
|
const oidc = __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "getAccessToken" });
|
|
@@ -252,6 +388,9 @@ export class AbstractOidcService {
|
|
|
252
388
|
};
|
|
253
389
|
}
|
|
254
390
|
get isNewBrowserSession() {
|
|
391
|
+
if (__classPrivateFieldGet(this, _AbstractOidcService_isNewBrowserSession_override, "f") !== undefined) {
|
|
392
|
+
return __classPrivateFieldGet(this, _AbstractOidcService_isNewBrowserSession_override, "f");
|
|
393
|
+
}
|
|
255
394
|
const oidc = __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "isNewBrowserSession" });
|
|
256
395
|
if (!oidc.isUserLoggedIn) {
|
|
257
396
|
throw new Error("oidc-spa: isNewBrowserSession was used but the used is not logged in");
|
|
@@ -259,7 +398,7 @@ export class AbstractOidcService {
|
|
|
259
398
|
return oidc.isNewBrowserSession;
|
|
260
399
|
}
|
|
261
400
|
}
|
|
262
|
-
_AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _AbstractOidcService_dState = new WeakMap(), _AbstractOidcService_instances = new WeakSet(), _AbstractOidcService_initialize = function _AbstractOidcService_initialize(params) {
|
|
401
|
+
_AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _AbstractOidcService_isRunningGetParams = new WeakMap(), _AbstractOidcService_deadlockDetectionTimer = new WeakMap(), _AbstractOidcService_dState = new WeakMap(), _AbstractOidcService_isUserLoggedIn_override = new WeakMap(), _AbstractOidcService_decodedIdToken$ = new WeakMap(), _AbstractOidcService_$decodedIdToken = new WeakMap(), _AbstractOidcService_isNewBrowserSession_override = new WeakMap(), _AbstractOidcService_instances = new WeakSet(), _AbstractOidcService_initialize = function _AbstractOidcService_initialize(params) {
|
|
263
402
|
const { prOidcOrInitializationError } = params;
|
|
264
403
|
prOidcOrInitializationError.then(oidcOrInitializationError => {
|
|
265
404
|
let initializationError = undefined;
|
|
@@ -290,7 +429,7 @@ _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _Abstract
|
|
|
290
429
|
const { callerName } = params;
|
|
291
430
|
const { hasResolved, value } = __classPrivateFieldGet(this, _AbstractOidcService_dState, "f").getState();
|
|
292
431
|
if (!hasResolved) {
|
|
293
|
-
throw new
|
|
432
|
+
throw new OidcAccessedTooEarlyError(__classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getPrInitializedNotResolvedErrorMessage).call(this, { callerName }));
|
|
294
433
|
}
|
|
295
434
|
return value;
|
|
296
435
|
}, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage = function _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage(params) {
|
|
@@ -311,4 +450,10 @@ _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _Abstract
|
|
|
311
450
|
}
|
|
312
451
|
return state.oidc;
|
|
313
452
|
};
|
|
453
|
+
export class OidcAccessedTooEarlyError extends Error {
|
|
454
|
+
constructor(message) {
|
|
455
|
+
super(message);
|
|
456
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
314
459
|
//# sourceMappingURL=angular.js.map
|
package/esm/angular.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"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"}
|
package/esm/backend.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ZodSchemaLike } from "./tools/ZodSchemaLike";
|
|
2
|
+
/**
|
|
3
|
+
* Claims defined by RFC 9068: "JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens"
|
|
4
|
+
* https://datatracker.ietf.org/doc/html/rfc9068
|
|
5
|
+
*
|
|
6
|
+
* These tokens are intended for consumption by resource servers.
|
|
7
|
+
*/
|
|
8
|
+
export type DecodedAccessToken_RFC9068 = {
|
|
9
|
+
iss: string;
|
|
10
|
+
sub: string;
|
|
11
|
+
aud: string | string[];
|
|
12
|
+
exp: number;
|
|
13
|
+
iat: number;
|
|
14
|
+
client_id?: string;
|
|
15
|
+
scope?: string;
|
|
16
|
+
jti?: string;
|
|
17
|
+
nbf?: number;
|
|
18
|
+
auth_time?: number;
|
|
19
|
+
cnf?: Record<string, unknown>;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
export type ParamsOfCreateOidcBackend<DecodedAccessToken> = {
|
|
23
|
+
issuerUri: string;
|
|
24
|
+
decodedAccessTokenSchema?: ZodSchemaLike<DecodedAccessToken_RFC9068, DecodedAccessToken>;
|
|
25
|
+
};
|
|
26
|
+
export type OidcBackend<DecodedAccessToken extends Record<string, unknown>> = {
|
|
27
|
+
verifyAndDecodeAccessToken(params: {
|
|
28
|
+
accessToken: string;
|
|
29
|
+
}): Promise<ResultOfAccessTokenVerify<DecodedAccessToken>>;
|
|
30
|
+
};
|
|
31
|
+
export type ResultOfAccessTokenVerify<DecodedAccessToken> = ResultOfAccessTokenVerify.Valid<DecodedAccessToken> | ResultOfAccessTokenVerify.Invalid;
|
|
32
|
+
export declare namespace ResultOfAccessTokenVerify {
|
|
33
|
+
type Valid<DecodedAccessToken> = {
|
|
34
|
+
isValid: true;
|
|
35
|
+
decodedAccessToken: DecodedAccessToken;
|
|
36
|
+
decodedAccessToken_original: DecodedAccessToken_RFC9068;
|
|
37
|
+
errorCase?: never;
|
|
38
|
+
errorMessage?: never;
|
|
39
|
+
};
|
|
40
|
+
type Invalid = {
|
|
41
|
+
isValid: false;
|
|
42
|
+
errorCase: "expired" | "invalid signature" | "does not respect schema";
|
|
43
|
+
errorMessage: string;
|
|
44
|
+
decodedAccessToken?: never;
|
|
45
|
+
decodedAccessToken_original?: never;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export declare function createOidcBackend<DecodedAccessToken extends Record<string, unknown> = DecodedAccessToken_RFC9068>(params: ParamsOfCreateOidcBackend<DecodedAccessToken>): Promise<OidcBackend<DecodedAccessToken>>;
|
package/esm/backend.js
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { assert, isAmong, id, is } from "./vendor/backend/tsafe";
|
|
2
|
+
import { decodeProtectedHeader, jwtVerify, createLocalJWKSet, errors } from "./vendor/backend/jose";
|
|
3
|
+
import { z } from "./vendor/backend/zod";
|
|
4
|
+
import { Evt, throttleTime } from "./vendor/backend/evt";
|
|
5
|
+
const zDecodedAccessToken_RFC9068 = (() => {
|
|
6
|
+
const zTargetType = z
|
|
7
|
+
.object({
|
|
8
|
+
iss: z.string(),
|
|
9
|
+
sub: z.string(),
|
|
10
|
+
aud: z.union([z.string(), z.array(z.string())]),
|
|
11
|
+
exp: z.number(),
|
|
12
|
+
iat: z.number(),
|
|
13
|
+
client_id: z.string().optional(),
|
|
14
|
+
scope: z.string().optional(),
|
|
15
|
+
jti: z.string().optional(),
|
|
16
|
+
nbf: z.number().optional(),
|
|
17
|
+
auth_time: z.number().optional(),
|
|
18
|
+
cnf: z.record(z.unknown()).optional()
|
|
19
|
+
})
|
|
20
|
+
.catchall(z.unknown());
|
|
21
|
+
assert;
|
|
22
|
+
return id(zTargetType);
|
|
23
|
+
})();
|
|
24
|
+
export async function createOidcBackend(params) {
|
|
25
|
+
const { issuerUri, decodedAccessTokenSchema } = params;
|
|
26
|
+
let publicSigningKeys = await fetchPublicSigningKeys({ issuerUri });
|
|
27
|
+
const evtInvalidSignature = Evt.create();
|
|
28
|
+
evtInvalidSignature.pipe(throttleTime(3600000)).attach(async () => {
|
|
29
|
+
const publicSigningKeys_new = await (async function callee(count) {
|
|
30
|
+
let wrap;
|
|
31
|
+
try {
|
|
32
|
+
wrap = await fetchPublicSigningKeys({ issuerUri });
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (count === 9) {
|
|
36
|
+
console.warn(`Failed to refresh public key and signing algorithm after ${count + 1} attempts`);
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const delayMs = 1000 * Math.pow(2, count);
|
|
40
|
+
console.warn(`Failed to refresh public key and signing algorithm: ${String(error)}, retrying in ${delayMs}ms`);
|
|
41
|
+
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
42
|
+
return callee(count + 1);
|
|
43
|
+
}
|
|
44
|
+
return wrap;
|
|
45
|
+
})(0);
|
|
46
|
+
if (publicSigningKeys_new === undefined) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
publicSigningKeys = publicSigningKeys_new;
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
verifyAndDecodeAccessToken: async ({ accessToken }) => {
|
|
53
|
+
let kid;
|
|
54
|
+
let alg;
|
|
55
|
+
{
|
|
56
|
+
let header;
|
|
57
|
+
try {
|
|
58
|
+
header = decodeProtectedHeader(accessToken);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return {
|
|
62
|
+
isValid: false,
|
|
63
|
+
errorCase: "invalid signature",
|
|
64
|
+
errorMessage: "Failed to decode the JWT header"
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const { kid: kidFromHeader, alg: algFromHeader } = header;
|
|
68
|
+
if (typeof kidFromHeader !== "string" || kidFromHeader.length === 0) {
|
|
69
|
+
return {
|
|
70
|
+
isValid: false,
|
|
71
|
+
errorCase: "invalid signature",
|
|
72
|
+
errorMessage: "The decoded JWT header does not have a kid property"
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (typeof algFromHeader !== "string") {
|
|
76
|
+
return {
|
|
77
|
+
isValid: false,
|
|
78
|
+
errorCase: "invalid signature",
|
|
79
|
+
errorMessage: "The decoded JWT header does not specify an algorithm"
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const supportedAlgs = [
|
|
83
|
+
"RS256",
|
|
84
|
+
"RS384",
|
|
85
|
+
"RS512",
|
|
86
|
+
"ES256",
|
|
87
|
+
"ES384",
|
|
88
|
+
"ES512",
|
|
89
|
+
"PS256",
|
|
90
|
+
"PS384",
|
|
91
|
+
"PS512"
|
|
92
|
+
];
|
|
93
|
+
if (!isAmong(supportedAlgs, algFromHeader)) {
|
|
94
|
+
return {
|
|
95
|
+
isValid: false,
|
|
96
|
+
errorCase: "invalid signature",
|
|
97
|
+
errorMessage: `Unsupported or too weak algorithm ${algFromHeader}`
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
kid = kidFromHeader;
|
|
101
|
+
alg = algFromHeader;
|
|
102
|
+
}
|
|
103
|
+
if (!publicSigningKeys.kidSet.has(kid)) {
|
|
104
|
+
return {
|
|
105
|
+
isValid: false,
|
|
106
|
+
errorCase: "invalid signature",
|
|
107
|
+
errorMessage: `No public signing key found with kid ${kid}`
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
let payload;
|
|
111
|
+
try {
|
|
112
|
+
const verification = await jwtVerify(accessToken, publicSigningKeys.keyResolver, {
|
|
113
|
+
algorithms: [alg]
|
|
114
|
+
});
|
|
115
|
+
payload = verification.payload;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof errors.JWTExpired) {
|
|
119
|
+
return id({
|
|
120
|
+
isValid: false,
|
|
121
|
+
errorCase: "expired",
|
|
122
|
+
errorMessage: error.message
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
evtInvalidSignature.post();
|
|
126
|
+
return id({
|
|
127
|
+
isValid: false,
|
|
128
|
+
errorCase: "invalid signature",
|
|
129
|
+
errorMessage: error instanceof Error ? error.message : String(error)
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
const decodedAccessToken_unknown = payload;
|
|
133
|
+
try {
|
|
134
|
+
zDecodedAccessToken_RFC9068.parse(decodedAccessToken_unknown);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
return id({
|
|
138
|
+
isValid: false,
|
|
139
|
+
errorCase: "does not respect schema",
|
|
140
|
+
errorMessage: [
|
|
141
|
+
`The decoded access token does not satisfies`,
|
|
142
|
+
`the shape mandated by RFC9068: ${String(error)}`
|
|
143
|
+
].join(" ")
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
assert(is(decodedAccessToken_unknown));
|
|
147
|
+
const decodedAccessToken_original = decodedAccessToken_unknown;
|
|
148
|
+
let decodedAccessToken;
|
|
149
|
+
if (decodedAccessTokenSchema === undefined) {
|
|
150
|
+
decodedAccessToken = decodedAccessToken_original;
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
try {
|
|
154
|
+
decodedAccessToken = decodedAccessTokenSchema.parse(decodedAccessToken_original);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
return id({
|
|
158
|
+
isValid: false,
|
|
159
|
+
errorCase: "does not respect schema",
|
|
160
|
+
errorMessage: String(error)
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return id({
|
|
165
|
+
isValid: true,
|
|
166
|
+
decodedAccessToken,
|
|
167
|
+
decodedAccessToken_original
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
async function fetchPublicSigningKeys(params) {
|
|
173
|
+
const { issuerUri } = params;
|
|
174
|
+
const { jwks_uri } = await (async () => {
|
|
175
|
+
const url = `${issuerUri.replace(/\/$/, "")}/.well-known/openid-configuration`;
|
|
176
|
+
const response = await fetch(url);
|
|
177
|
+
if (!response.ok) {
|
|
178
|
+
throw new Error(`Failed to fetch openid configuration of the issuerUri: ${issuerUri} (${url}): ${response.statusText}`);
|
|
179
|
+
}
|
|
180
|
+
let data;
|
|
181
|
+
try {
|
|
182
|
+
data = await response.json();
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
throw new Error(`Failed to parse json from ${url}: ${String(error)}`);
|
|
186
|
+
}
|
|
187
|
+
{
|
|
188
|
+
const zWellKnownConfiguration = z.object({
|
|
189
|
+
jwks_uri: z.string()
|
|
190
|
+
});
|
|
191
|
+
assert();
|
|
192
|
+
try {
|
|
193
|
+
zWellKnownConfiguration.parse(data);
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
throw new Error(`${url} does not have a jwks_uri property`);
|
|
197
|
+
}
|
|
198
|
+
assert(is(data));
|
|
199
|
+
}
|
|
200
|
+
const { jwks_uri } = data;
|
|
201
|
+
return { jwks_uri };
|
|
202
|
+
})();
|
|
203
|
+
const { jwks } = await (async () => {
|
|
204
|
+
const response = await fetch(jwks_uri);
|
|
205
|
+
if (!response.ok) {
|
|
206
|
+
throw new Error(`Failed to fetch public key and algorithm from ${jwks_uri}: ${response.statusText}`);
|
|
207
|
+
}
|
|
208
|
+
let jwks;
|
|
209
|
+
try {
|
|
210
|
+
jwks = await response.json();
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
throw new Error(`Failed to parse json from ${jwks_uri}: ${String(error)}`);
|
|
214
|
+
}
|
|
215
|
+
{
|
|
216
|
+
const zJwks = z.object({
|
|
217
|
+
keys: z.array(z.object({
|
|
218
|
+
kid: z.string(),
|
|
219
|
+
kty: z.string(),
|
|
220
|
+
use: z.string().optional(),
|
|
221
|
+
alg: z.string().optional()
|
|
222
|
+
}))
|
|
223
|
+
});
|
|
224
|
+
assert();
|
|
225
|
+
try {
|
|
226
|
+
zJwks.parse(jwks);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
throw new Error(`${jwks_uri} does not have the expected shape`);
|
|
230
|
+
}
|
|
231
|
+
assert(is(jwks));
|
|
232
|
+
}
|
|
233
|
+
return { jwks };
|
|
234
|
+
})();
|
|
235
|
+
//const signatureKeys = jwks.keys.filter((key): key is JWKS["keys"][number] & { kid: string } => {
|
|
236
|
+
const signatureKeys = jwks.keys.filter(key => {
|
|
237
|
+
if (typeof key.kid !== "string" || key.kid.length === 0) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
if (key.use !== undefined && key.use !== "sig") {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
const supportedKty = ["RSA", "EC"];
|
|
244
|
+
if (!supportedKty.includes(key.kty)) {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
return true;
|
|
248
|
+
});
|
|
249
|
+
assert(signatureKeys.length !== 0, `No public signing key found at ${jwks_uri}, ${JSON.stringify(jwks, null, 2)}`);
|
|
250
|
+
const kidSet = new Set(signatureKeys.map(({ kid }) => kid));
|
|
251
|
+
const keyResolver = createLocalJWKSet({
|
|
252
|
+
keys: signatureKeys
|
|
253
|
+
});
|
|
254
|
+
return {
|
|
255
|
+
keyResolver,
|
|
256
|
+
kidSet
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
|