@axa-fr/react-oidc 6.13.4 → 6.14.1
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/dist/OidcServiceWorker.js +36 -9
- package/dist/vanilla/crypto.d.ts +4 -0
- package/dist/vanilla/crypto.d.ts.map +1 -0
- package/dist/vanilla/crypto.js +81 -0
- package/dist/vanilla/crypto.js.map +1 -0
- package/dist/vanilla/initSession.d.ts +6 -4
- package/dist/vanilla/initSession.d.ts.map +1 -1
- package/dist/vanilla/initSession.js +22 -15
- package/dist/vanilla/initSession.js.map +1 -1
- package/dist/vanilla/initWorker.d.ts +4 -2
- package/dist/vanilla/initWorker.d.ts.map +1 -1
- package/dist/vanilla/initWorker.js +39 -18
- package/dist/vanilla/initWorker.js.map +1 -1
- package/dist/vanilla/login.d.ts +5 -1
- package/dist/vanilla/login.d.ts.map +1 -1
- package/dist/vanilla/login.js +70 -143
- package/dist/vanilla/login.js.map +1 -1
- package/dist/vanilla/logout.d.ts +4 -0
- package/dist/vanilla/logout.d.ts.map +1 -0
- package/dist/vanilla/logout.js +113 -0
- package/dist/vanilla/logout.js.map +1 -0
- package/dist/vanilla/oidc.d.ts +11 -6
- package/dist/vanilla/oidc.d.ts.map +1 -1
- package/dist/vanilla/oidc.js +26 -94
- package/dist/vanilla/oidc.js.map +1 -1
- package/dist/vanilla/requests.d.ts +14 -0
- package/dist/vanilla/requests.d.ts.map +1 -1
- package/dist/vanilla/requests.js +56 -1
- package/dist/vanilla/requests.js.map +1 -1
- package/dist/vanilla/route-utils.js +2 -2
- package/dist/vanilla/route-utils.js.map +1 -1
- package/package.json +2 -2
- package/src/oidc/vanilla/OidcServiceWorker.js +36 -9
- package/src/oidc/vanilla/crypto.ts +57 -0
- package/src/oidc/vanilla/initSession.ts +25 -15
- package/src/oidc/vanilla/initWorker.ts +43 -18
- package/src/oidc/vanilla/login.ts +76 -148
- package/src/oidc/vanilla/logout.ts +95 -0
- package/src/oidc/vanilla/oidc.ts +35 -98
- package/src/oidc/vanilla/requests.spec.ts +4 -0
- package/src/oidc/vanilla/requests.ts +55 -0
- package/src/oidc/vanilla/route-utils.ts +2 -2
- package/dist/vanilla/memoryStorageBackend.d.ts +0 -11
- package/dist/vanilla/memoryStorageBackend.d.ts.map +0 -1
- package/dist/vanilla/memoryStorageBackend.js +0 -31
- package/dist/vanilla/memoryStorageBackend.js.map +0 -1
- package/dist/vanilla/noHashQueryStringUtils.d.ts +0 -8
- package/dist/vanilla/noHashQueryStringUtils.d.ts.map +0 -1
- package/dist/vanilla/noHashQueryStringUtils.js +0 -32
- package/dist/vanilla/noHashQueryStringUtils.js.map +0 -1
- package/src/oidc/vanilla/memoryStorageBackend.ts +0 -40
- package/src/oidc/vanilla/noHashQueryStringUtils.ts +0 -32
package/dist/vanilla/oidc.js
CHANGED
|
@@ -36,12 +36,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
exports.Oidc = exports.OidcAuthorizationServiceConfiguration = void 0;
|
|
39
|
-
const appauth_1 = require("@openid/appauth");
|
|
40
39
|
const checkSession_1 = require("./checkSession");
|
|
41
40
|
const events_1 = require("./events");
|
|
42
41
|
const initSession_1 = require("./initSession");
|
|
43
42
|
const initWorker_1 = require("./initWorker");
|
|
44
43
|
const login_1 = require("./login");
|
|
44
|
+
const logout_1 = require("./logout");
|
|
45
45
|
const parseTokens_1 = require("./parseTokens");
|
|
46
46
|
const renewTokens_1 = require("./renewTokens");
|
|
47
47
|
const requests_1 = require("./requests");
|
|
@@ -49,15 +49,15 @@ const route_utils_1 = require("./route-utils");
|
|
|
49
49
|
const silentLogin_1 = __importStar(require("./silentLogin"));
|
|
50
50
|
const timer_1 = __importDefault(require("./timer"));
|
|
51
51
|
const user_1 = require("./user");
|
|
52
|
-
class OidcAuthorizationServiceConfiguration
|
|
52
|
+
class OidcAuthorizationServiceConfiguration {
|
|
53
53
|
constructor(request) {
|
|
54
|
-
super(request);
|
|
55
54
|
this.authorizationEndpoint = request.authorization_endpoint;
|
|
56
55
|
this.tokenEndpoint = request.token_endpoint;
|
|
57
56
|
this.revocationEndpoint = request.revocation_endpoint;
|
|
58
57
|
this.userInfoEndpoint = request.userinfo_endpoint;
|
|
59
|
-
this.
|
|
58
|
+
this.checkSessionIframe = request.check_session_iframe;
|
|
60
59
|
this.issuer = request.issuer;
|
|
60
|
+
this.endSessionEndpoint = request.end_session_endpoint;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
exports.OidcAuthorizationServiceConfiguration = OidcAuthorizationServiceConfiguration;
|
|
@@ -86,6 +86,8 @@ class Oidc {
|
|
|
86
86
|
this.loginCallbackPromise = null;
|
|
87
87
|
this.loginCallbackWithAutoTokensRenewPromise = null;
|
|
88
88
|
this.userInfoPromise = null;
|
|
89
|
+
this.renewTokensPromise = null;
|
|
90
|
+
this.logoutPromise = null;
|
|
89
91
|
let silent_login_uri = configuration.silent_login_uri;
|
|
90
92
|
if (configuration.silent_redirect_uri && !configuration.silent_login_uri) {
|
|
91
93
|
silent_login_uri = `${configuration.silent_redirect_uri.replace('-callback', '').replace('callback', '')}-login`;
|
|
@@ -239,7 +241,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
239
241
|
const getLoginParams = session.getLoginParams(this.configurationName);
|
|
240
242
|
// @ts-ignore
|
|
241
243
|
this.timeoutId = (0, renewTokens_1.autoRenewTokens)(this, tokens.refreshToken, this.tokens.expiresAt, getLoginParams.extras);
|
|
242
|
-
const sessionState = session.
|
|
244
|
+
const sessionState = yield session.getSessionStateAsync();
|
|
243
245
|
// @ts-ignore
|
|
244
246
|
yield this.startCheckSessionAsync(oidcServerConfiguration.check_session_iframe, configuration.client_id, sessionState);
|
|
245
247
|
this.publishEvent(events_1.eventNames.tryKeepExistingSessionAsync_end, {
|
|
@@ -305,7 +307,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
305
307
|
// @ts-ignore
|
|
306
308
|
const parsedTokens = response.tokens;
|
|
307
309
|
// @ts-ignore
|
|
308
|
-
this.tokens =
|
|
310
|
+
this.tokens = parsedTokens;
|
|
309
311
|
const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
|
|
310
312
|
if (!serviceWorker) {
|
|
311
313
|
const session = (0, initSession_1.initSession)(this.configurationName, this.configuration.storage);
|
|
@@ -351,7 +353,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
351
353
|
};
|
|
352
354
|
const localsilentLoginAsync = () => __awaiter(this, void 0, void 0, function* () {
|
|
353
355
|
try {
|
|
354
|
-
let loginParams
|
|
356
|
+
let loginParams;
|
|
355
357
|
const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName);
|
|
356
358
|
if (serviceWorker) {
|
|
357
359
|
loginParams = serviceWorker.getLoginParams(this.configurationName);
|
|
@@ -426,7 +428,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
426
428
|
const details = {
|
|
427
429
|
client_id: clientId,
|
|
428
430
|
redirect_uri: redirectUri,
|
|
429
|
-
grant_type:
|
|
431
|
+
grant_type: 'refresh_token',
|
|
430
432
|
refresh_token: tokens.refreshToken,
|
|
431
433
|
};
|
|
432
434
|
const oidcServerConfiguration = yield this.initAsync(authority, configuration.authority_configuration);
|
|
@@ -541,32 +543,24 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
541
543
|
}
|
|
542
544
|
renewTokensAsync(extras = null) {
|
|
543
545
|
return __awaiter(this, void 0, void 0, function* () {
|
|
546
|
+
if (this.renewTokensPromise !== null) {
|
|
547
|
+
return this.renewTokensPromise;
|
|
548
|
+
}
|
|
544
549
|
if (!this.timeoutId) {
|
|
545
550
|
return;
|
|
546
551
|
}
|
|
547
552
|
timer_1.default.clearTimeout(this.timeoutId);
|
|
548
553
|
// @ts-ignore
|
|
549
|
-
|
|
554
|
+
this.renewTokensPromise = (0, renewTokens_1.renewTokensAndStartTimerAsync)(this, this.tokens.refreshToken, true, extras);
|
|
555
|
+
return this.renewTokensPromise.then(result => {
|
|
556
|
+
this.renewTokensPromise = null;
|
|
557
|
+
return result;
|
|
558
|
+
});
|
|
550
559
|
});
|
|
551
560
|
}
|
|
552
561
|
destroyAsync(status) {
|
|
553
562
|
return __awaiter(this, void 0, void 0, function* () {
|
|
554
|
-
|
|
555
|
-
this.timeoutId = null;
|
|
556
|
-
if (this.checkSessionIFrame) {
|
|
557
|
-
this.checkSessionIFrame.stop();
|
|
558
|
-
}
|
|
559
|
-
const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
|
|
560
|
-
if (!serviceWorker) {
|
|
561
|
-
const session = (0, initSession_1.initSession)(this.configurationName, this.configuration.storage);
|
|
562
|
-
yield session.clearAsync(status);
|
|
563
|
-
}
|
|
564
|
-
else {
|
|
565
|
-
yield serviceWorker.clearAsync(status);
|
|
566
|
-
}
|
|
567
|
-
this.tokens = null;
|
|
568
|
-
this.userInfo = null;
|
|
569
|
-
// this.events = [];
|
|
563
|
+
return yield (0, logout_1.destroyAsync)(this)(status);
|
|
570
564
|
});
|
|
571
565
|
}
|
|
572
566
|
logoutSameTabAsync(clientId, sub) {
|
|
@@ -589,76 +583,14 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
|
|
|
589
583
|
}
|
|
590
584
|
logoutAsync(callbackPathOrUrl = undefined, extras = null) {
|
|
591
585
|
return __awaiter(this, void 0, void 0, function* () {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
if (callbackPathOrUrl && (typeof callbackPathOrUrl !== 'string')) {
|
|
595
|
-
callbackPathOrUrl = undefined;
|
|
596
|
-
console.warn('callbackPathOrUrl path is not a string');
|
|
597
|
-
}
|
|
598
|
-
const path = (callbackPathOrUrl === null || callbackPathOrUrl === undefined) ? location.pathname + (location.search || '') + (location.hash || '') : callbackPathOrUrl;
|
|
599
|
-
let isUri = false;
|
|
600
|
-
if (callbackPathOrUrl) {
|
|
601
|
-
isUri = callbackPathOrUrl.includes('https://') || callbackPathOrUrl.includes('http://');
|
|
602
|
-
}
|
|
603
|
-
const url = isUri ? callbackPathOrUrl : window.location.origin + path;
|
|
604
|
-
// @ts-ignore
|
|
605
|
-
const idToken = this.tokens ? this.tokens.idToken : '';
|
|
606
|
-
try {
|
|
607
|
-
const revocationEndpoint = oidcServerConfiguration.revocationEndpoint;
|
|
608
|
-
if (revocationEndpoint) {
|
|
609
|
-
const promises = [];
|
|
610
|
-
if (this.tokens.accessToken) {
|
|
611
|
-
const revokeAccessTokenPromise = (0, requests_1.performRevocationRequestAsync)(revocationEndpoint, this.tokens.accessToken, requests_1.TOKEN_TYPE.access_token, configuration.client_id);
|
|
612
|
-
promises.push(revokeAccessTokenPromise);
|
|
613
|
-
}
|
|
614
|
-
if (this.tokens.refreshToken) {
|
|
615
|
-
const revokeRefreshTokenPromise = (0, requests_1.performRevocationRequestAsync)(revocationEndpoint, this.tokens.refreshToken, requests_1.TOKEN_TYPE.refresh_token, configuration.client_id);
|
|
616
|
-
promises.push(revokeRefreshTokenPromise);
|
|
617
|
-
}
|
|
618
|
-
if (promises.length > 0) {
|
|
619
|
-
yield Promise.all(promises);
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
catch (exception) {
|
|
624
|
-
console.warn(exception);
|
|
625
|
-
}
|
|
626
|
-
// @ts-ignore
|
|
627
|
-
const sub = this.tokens && this.tokens.idTokenPayload ? this.tokens.idTokenPayload.sub : null;
|
|
628
|
-
yield this.destroyAsync('LOGGED_OUT');
|
|
629
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
630
|
-
for (const [key, oidc] of Object.entries(oidcDatabase)) {
|
|
631
|
-
if (oidc !== this) {
|
|
632
|
-
// @ts-ignore
|
|
633
|
-
yield oidc.logoutSameTabAsync(this.configuration.client_id, sub);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
if (oidcServerConfiguration.endSessionEndpoint) {
|
|
637
|
-
if (!extras) {
|
|
638
|
-
extras = {
|
|
639
|
-
id_token_hint: idToken,
|
|
640
|
-
};
|
|
641
|
-
if (callbackPathOrUrl !== null) {
|
|
642
|
-
extras.post_logout_redirect_uri = url;
|
|
643
|
-
}
|
|
644
|
-
}
|
|
645
|
-
let queryString = '';
|
|
646
|
-
if (extras) {
|
|
647
|
-
for (const [key, value] of Object.entries(extras)) {
|
|
648
|
-
if (queryString === '') {
|
|
649
|
-
queryString += '?';
|
|
650
|
-
}
|
|
651
|
-
else {
|
|
652
|
-
queryString += '&';
|
|
653
|
-
}
|
|
654
|
-
queryString += `${key}=${encodeURIComponent(value)}`;
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
window.location.href = `${oidcServerConfiguration.endSessionEndpoint}${queryString}`;
|
|
658
|
-
}
|
|
659
|
-
else {
|
|
660
|
-
window.location.reload();
|
|
586
|
+
if (this.logoutPromise) {
|
|
587
|
+
return this.logoutPromise;
|
|
661
588
|
}
|
|
589
|
+
this.logoutPromise = (0, logout_1.logoutAsync)(this, oidcDatabase)(callbackPathOrUrl, extras);
|
|
590
|
+
return this.logoutPromise.then(result => {
|
|
591
|
+
this.logoutPromise = null;
|
|
592
|
+
return result;
|
|
593
|
+
});
|
|
662
594
|
});
|
|
663
595
|
}
|
|
664
596
|
}
|
package/dist/vanilla/oidc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OidcAuthorizationServiceConfiguration } from './oidc';
|
|
2
|
+
import { StringMap } from './types';
|
|
2
3
|
export declare const fetchFromIssuer: (openIdIssuerUrl: string, timeCacheSecond?: number, storage?: Storage) => Promise<OidcAuthorizationServiceConfiguration>;
|
|
3
4
|
export declare const TOKEN_TYPE: {
|
|
4
5
|
refresh_token: string;
|
|
@@ -16,4 +17,17 @@ export declare const performTokenRequestAsync: (url: any, details: any, extras:
|
|
|
16
17
|
data: import("./parseTokens").Tokens;
|
|
17
18
|
status?: undefined;
|
|
18
19
|
}>;
|
|
20
|
+
export declare const performAuthorizationRequestAsync: (storage: any) => (url: any, extras: StringMap) => Promise<void>;
|
|
21
|
+
export declare const performFirstTokenRequestAsync: (storage: any) => (url: any, extras: any, tokenRenewMode: string, timeoutMs?: number) => Promise<{
|
|
22
|
+
success: boolean;
|
|
23
|
+
status: any;
|
|
24
|
+
data?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
success: boolean;
|
|
27
|
+
data: {
|
|
28
|
+
state: any;
|
|
29
|
+
tokens: import("./parseTokens").Tokens;
|
|
30
|
+
};
|
|
31
|
+
status?: undefined;
|
|
32
|
+
}>;
|
|
19
33
|
//# sourceMappingURL=requests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qCAAqC,EAAE,MAAM,QAAQ,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,eAAe,oBAA2B,MAAM,kDACzD,QAAQ,qCAAqC,CAkBhD,CAAC;AAwBF,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,eAAO,MAAM,6BAA6B;;EA4BzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,wEAA2D,MAAM;;;;;;;;EA8BrG,CAAC;AAEF,eAAO,MAAM,gCAAgC,YAAa,GAAG,wBAAyB,SAAS,kBAoB9F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAY,GAAG,6CAAyC,MAAM;;;;;;;;;;;EA6BvG,CAAC"}
|
package/dist/vanilla/requests.js
CHANGED
|
@@ -9,8 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.performTokenRequestAsync = exports.performRevocationRequestAsync = exports.TOKEN_TYPE = exports.fetchFromIssuer = void 0;
|
|
12
|
+
exports.performFirstTokenRequestAsync = exports.performAuthorizationRequestAsync = exports.performTokenRequestAsync = exports.performRevocationRequestAsync = exports.TOKEN_TYPE = exports.fetchFromIssuer = void 0;
|
|
13
13
|
const cache_1 = require("./cache");
|
|
14
|
+
const crypto_1 = require("./crypto");
|
|
14
15
|
const oidc_1 = require("./oidc");
|
|
15
16
|
const parseTokens_1 = require("./parseTokens");
|
|
16
17
|
const oneHourSecond = 60 * 60;
|
|
@@ -116,4 +117,58 @@ const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMod
|
|
|
116
117
|
};
|
|
117
118
|
});
|
|
118
119
|
exports.performTokenRequestAsync = performTokenRequestAsync;
|
|
120
|
+
const performAuthorizationRequestAsync = (storage) => (url, extras) => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
+
extras = extras ? Object.assign({}, extras) : {};
|
|
122
|
+
const codeVerifier = (0, crypto_1.generateRandom)(128);
|
|
123
|
+
const codeChallenge = yield (0, crypto_1.deriveChallengeAsync)(codeVerifier);
|
|
124
|
+
yield storage.setCodeVerifierAsync(codeVerifier);
|
|
125
|
+
yield storage.setStateAsync(extras.state);
|
|
126
|
+
extras.code_challenge = codeChallenge;
|
|
127
|
+
extras.code_challenge_method = 'S256';
|
|
128
|
+
let queryString = '';
|
|
129
|
+
if (extras) {
|
|
130
|
+
for (const [key, value] of Object.entries(extras)) {
|
|
131
|
+
if (queryString === '') {
|
|
132
|
+
queryString += '?';
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
queryString += '&';
|
|
136
|
+
}
|
|
137
|
+
queryString += `${key}=${encodeURIComponent(value)}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
window.location.href = `${url}${queryString}`;
|
|
141
|
+
});
|
|
142
|
+
exports.performAuthorizationRequestAsync = performAuthorizationRequestAsync;
|
|
143
|
+
const performFirstTokenRequestAsync = (storage) => (url, extras, tokenRenewMode, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
|
+
extras = extras ? Object.assign({}, extras) : {};
|
|
145
|
+
extras.code_verifier = yield storage.getCodeVerifierAsync();
|
|
146
|
+
const formBody = [];
|
|
147
|
+
for (const property in extras) {
|
|
148
|
+
const encodedKey = encodeURIComponent(property);
|
|
149
|
+
const encodedValue = encodeURIComponent(extras[property]);
|
|
150
|
+
formBody.push(`${encodedKey}=${encodedValue}`);
|
|
151
|
+
}
|
|
152
|
+
const formBodyString = formBody.join('&');
|
|
153
|
+
const response = yield internalFetch(url, {
|
|
154
|
+
method: 'POST',
|
|
155
|
+
headers: {
|
|
156
|
+
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
|
|
157
|
+
},
|
|
158
|
+
body: formBodyString,
|
|
159
|
+
}, timeoutMs);
|
|
160
|
+
yield Promise.all([storage.setCodeVerifierAsync(null), storage.setStateAsync(null)]);
|
|
161
|
+
if (response.status !== 200) {
|
|
162
|
+
return { success: false, status: response.status };
|
|
163
|
+
}
|
|
164
|
+
const tokens = yield response.json();
|
|
165
|
+
return {
|
|
166
|
+
success: true,
|
|
167
|
+
data: {
|
|
168
|
+
state: extras.state,
|
|
169
|
+
tokens: (0, parseTokens_1.parseOriginalTokens)(tokens, null, tokenRenewMode),
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
exports.performFirstTokenRequestAsync = performFirstTokenRequestAsync;
|
|
119
174
|
//# sourceMappingURL=requests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAiD;AACjD,iCAA+D;AAC/D,+CAAoD;
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const getLocation = (href) => {
|
|
|
17
17
|
search = splits[1];
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
if (search) {
|
|
20
|
+
if (search.startsWith('?')) {
|
|
21
21
|
search = search.slice(1);
|
|
22
22
|
}
|
|
23
23
|
return (match && {
|
|
@@ -64,7 +64,7 @@ const parseQueryString = (queryString) => {
|
|
|
64
64
|
// Convert the array of strings into an object
|
|
65
65
|
for (i = 0, l = queries.length; i < l; i++) {
|
|
66
66
|
temp = queries[i].split('=');
|
|
67
|
-
params[decodeURIComponent(temp[0])] = temp[1];
|
|
67
|
+
params[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
|
|
68
68
|
}
|
|
69
69
|
return params;
|
|
70
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-utils.js","sourceRoot":"","sources":["../../src/oidc/vanilla/route-utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;IACtB,6CAA6C;IAC3C,oFAAoF,CACvF,CAAC;IACF,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAElB,IAAI,IAAI,EAAE;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB;KACJ;IAED,IAAI,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"route-utils.js","sourceRoot":"","sources":["../../src/oidc/vanilla/route-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axa-fr/react-oidc",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"jsnext:main": "dist/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"lint": "eslint src"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"
|
|
43
|
+
"base64-js": "1.5.1"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"react": "^17.0.0 || ^18.0.0",
|
|
@@ -22,7 +22,8 @@ const database = {
|
|
|
22
22
|
configurationName: 'default',
|
|
23
23
|
tokens: null,
|
|
24
24
|
status: null,
|
|
25
|
-
|
|
25
|
+
state: null,
|
|
26
|
+
codeVerifier: null,
|
|
26
27
|
nonce: null,
|
|
27
28
|
oidcServerConfiguration: null,
|
|
28
29
|
},
|
|
@@ -249,6 +250,7 @@ const serializeHeaders = (headers) => {
|
|
|
249
250
|
const REFRESH_TOKEN = 'REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER';
|
|
250
251
|
const ACCESS_TOKEN = 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER';
|
|
251
252
|
const NONCE_TOKEN = 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER';
|
|
253
|
+
const CODE_VERIFIER = 'CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER';
|
|
252
254
|
|
|
253
255
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
254
256
|
|
|
@@ -286,7 +288,7 @@ const handleFetch = async (event) => {
|
|
|
286
288
|
...serializeHeaders(originalRequest.headers),
|
|
287
289
|
authorization: 'Bearer ' + currentDatabaseForRequestAccessToken.tokens.access_token,
|
|
288
290
|
},
|
|
289
|
-
mode: currentDatabaseForRequestAccessToken.oidcConfiguration.service_worker_convert_all_requests_to_cors ?
|
|
291
|
+
mode: currentDatabaseForRequestAccessToken.oidcConfiguration.service_worker_convert_all_requests_to_cors ? 'cors' : originalRequest.mode,
|
|
290
292
|
});
|
|
291
293
|
event.waitUntil(event.respondWith(fetch(newRequest)));
|
|
292
294
|
return;
|
|
@@ -346,8 +348,16 @@ const handleFetch = async (event) => {
|
|
|
346
348
|
} else if (actualBody.includes('code_verifier=') && currentLoginCallbackConfigurationName) {
|
|
347
349
|
currentDatabase = database[currentLoginCallbackConfigurationName];
|
|
348
350
|
currentLoginCallbackConfigurationName = null;
|
|
351
|
+
let newBody = actualBody;
|
|
352
|
+
if (currentDatabase && currentDatabase.codeVerifier != null) {
|
|
353
|
+
const keyCodeVerifier = CODE_VERIFIER + '_' + currentDatabase.configurationName;
|
|
354
|
+
if (actualBody.includes(keyCodeVerifier)) {
|
|
355
|
+
newBody = newBody.replace(keyCodeVerifier, currentDatabase.codeVerifier);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
349
359
|
return fetch(originalRequest, {
|
|
350
|
-
body:
|
|
360
|
+
body: newBody,
|
|
351
361
|
method: clonedRequest.method,
|
|
352
362
|
headers: {
|
|
353
363
|
...serializeHeaders(originalRequest.headers),
|
|
@@ -413,7 +423,8 @@ addEventListener('message', event => {
|
|
|
413
423
|
if (!currentDatabase) {
|
|
414
424
|
database[configurationName] = {
|
|
415
425
|
tokens: null,
|
|
416
|
-
|
|
426
|
+
state: null,
|
|
427
|
+
codeVerifier: null,
|
|
417
428
|
oidcServerConfiguration: null,
|
|
418
429
|
oidcConfiguration: null,
|
|
419
430
|
status: null,
|
|
@@ -426,12 +437,10 @@ addEventListener('message', event => {
|
|
|
426
437
|
}
|
|
427
438
|
|
|
428
439
|
switch (data.type) {
|
|
429
|
-
case 'loadItems':
|
|
430
|
-
port.postMessage(database[configurationName].items);
|
|
431
|
-
return;
|
|
432
440
|
case 'clear':
|
|
433
441
|
currentDatabase.tokens = null;
|
|
434
|
-
currentDatabase.
|
|
442
|
+
currentDatabase.state = null;
|
|
443
|
+
currentDatabase.codeVerifier = null;
|
|
435
444
|
currentDatabase.status = data.data.status;
|
|
436
445
|
port.postMessage({ configurationName });
|
|
437
446
|
return;
|
|
@@ -479,7 +488,25 @@ addEventListener('message', event => {
|
|
|
479
488
|
}
|
|
480
489
|
return;
|
|
481
490
|
}
|
|
482
|
-
|
|
491
|
+
case 'setState':
|
|
492
|
+
currentDatabase.state = data.data.state;
|
|
493
|
+
port.postMessage({ configurationName });
|
|
494
|
+
return;
|
|
495
|
+
case 'getState':
|
|
496
|
+
{
|
|
497
|
+
const state = currentDatabase.state;
|
|
498
|
+
port.postMessage({ configurationName, state });
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
case 'setCodeVerifier':
|
|
502
|
+
currentDatabase.codeVerifier = data.data.codeVerifier;
|
|
503
|
+
port.postMessage({ configurationName });
|
|
504
|
+
return;
|
|
505
|
+
case 'getCodeVerifier':
|
|
506
|
+
{
|
|
507
|
+
port.postMessage({ configurationName, codeVerifier: CODE_VERIFIER + '_' + configurationName });
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
483
510
|
case 'setSessionState':
|
|
484
511
|
currentDatabase.sessionState = data.data.sessionState;
|
|
485
512
|
port.postMessage({ configurationName });
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as base64 from 'base64-js';
|
|
2
|
+
|
|
3
|
+
const hasCrypto = typeof window !== 'undefined' && !!(window.crypto as any);
|
|
4
|
+
const hasSubtleCrypto = hasCrypto && !!(window.crypto.subtle as any);
|
|
5
|
+
const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
6
|
+
|
|
7
|
+
const bufferToString = (buffer: Uint8Array) => {
|
|
8
|
+
const state = [];
|
|
9
|
+
for (let i = 0; i < buffer.byteLength; i += 1) {
|
|
10
|
+
const index = buffer[i] % charset.length;
|
|
11
|
+
state.push(charset[index]);
|
|
12
|
+
}
|
|
13
|
+
return state.join('');
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const urlSafe = (buffer: Uint8Array): string => {
|
|
17
|
+
const encoded = base64.fromByteArray(new Uint8Array(buffer));
|
|
18
|
+
console.log(encoded);
|
|
19
|
+
return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const generateRandom = (size: number) => {
|
|
23
|
+
const buffer = new Uint8Array(size);
|
|
24
|
+
if (hasCrypto) {
|
|
25
|
+
window.crypto.getRandomValues(buffer);
|
|
26
|
+
} else {
|
|
27
|
+
// fall back to Math.random() if nothing else is available
|
|
28
|
+
for (let i = 0; i < size; i += 1) {
|
|
29
|
+
buffer[i] = (Math.random() * charset.length) | 0;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return bufferToString(buffer);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export function textEncodeLite(str: string) {
|
|
36
|
+
const buf = new ArrayBuffer(str.length);
|
|
37
|
+
const bufView = new Uint8Array(buf);
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < str.length; i++) {
|
|
40
|
+
bufView[i] = str.charCodeAt(i);
|
|
41
|
+
}
|
|
42
|
+
return bufView;
|
|
43
|
+
}
|
|
44
|
+
export const deriveChallengeAsync = (code: string): Promise<string> => {
|
|
45
|
+
if (code.length < 43 || code.length > 128) {
|
|
46
|
+
return Promise.reject(new Error('Invalid code length.'));
|
|
47
|
+
}
|
|
48
|
+
if (!hasSubtleCrypto) {
|
|
49
|
+
return Promise.reject(new Error('window.crypto.subtle is unavailable.'));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
53
|
+
crypto.subtle.digest('SHA-256', textEncodeLite(code)).then(buffer => {
|
|
54
|
+
return resolve(urlSafe(new Uint8Array(buffer)));
|
|
55
|
+
}, error => reject(error));
|
|
56
|
+
});
|
|
57
|
+
};
|