oidc-spa 6.5.1 → 6.6.0
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/mock/oidc.js +6 -5
- package/mock/oidc.js.map +1 -1
- package/oidc/AuthResponse.d.ts +6 -0
- package/oidc/AuthResponse.js +59 -0
- package/oidc/AuthResponse.js.map +1 -0
- package/oidc/Oidc.d.ts +19 -8
- package/oidc/createOidc.d.ts +4 -4
- package/oidc/createOidc.js +359 -295
- package/oidc/createOidc.js.map +1 -1
- package/oidc/evtIsUserActive.d.ts +15 -0
- package/oidc/{isUserActive.js → evtIsUserActive.js} +29 -12
- package/oidc/evtIsUserActive.js.map +1 -0
- package/oidc/handleOidcCallback.d.ts +8 -1
- package/oidc/handleOidcCallback.js +68 -13
- package/oidc/handleOidcCallback.js.map +1 -1
- package/oidc/loginOrGoToAuthServer.d.ts +5 -4
- package/oidc/loginOrGoToAuthServer.js +190 -227
- package/oidc/loginOrGoToAuthServer.js.map +1 -1
- package/oidc/loginPropagationToOtherTabs.d.ts +17 -0
- package/oidc/loginPropagationToOtherTabs.js +41 -0
- package/oidc/loginPropagationToOtherTabs.js.map +1 -0
- package/oidc/loginSilent.d.ts +1 -5
- package/oidc/loginSilent.js +3 -51
- package/oidc/loginSilent.js.map +1 -1
- package/oidc/logoutPropagationToOtherTabs.js +1 -1
- package/oidc/logoutPropagationToOtherTabs.js.map +1 -1
- package/oidc/oidcClientTsUserToTokens.d.ts +1 -1
- package/oidc/oidcClientTsUserToTokens.js +45 -23
- package/oidc/oidcClientTsUserToTokens.js.map +1 -1
- package/oidc/ongoingLoginOrRefreshProcesses.d.ts +16 -0
- package/oidc/ongoingLoginOrRefreshProcesses.js +102 -0
- package/oidc/ongoingLoginOrRefreshProcesses.js.map +1 -0
- package/oidc/persistedAuthState.d.ts +16 -3
- package/oidc/persistedAuthState.js +35 -4
- package/oidc/persistedAuthState.js.map +1 -1
- package/package.json +36 -21
- package/react/react.js +8 -14
- package/react/react.js.map +1 -1
- package/src/mock/oidc.ts +14 -3
- package/src/oidc/AuthResponse.ts +26 -0
- package/src/oidc/Oidc.ts +19 -4
- package/src/oidc/createOidc.ts +233 -206
- package/src/oidc/{isUserActive.ts → evtIsUserActive.ts} +36 -10
- package/src/oidc/handleOidcCallback.ts +73 -12
- package/src/oidc/loginOrGoToAuthServer.ts +94 -87
- package/src/oidc/loginPropagationToOtherTabs.ts +63 -0
- package/src/oidc/loginSilent.ts +2 -20
- package/src/oidc/logoutPropagationToOtherTabs.ts +2 -2
- package/src/oidc/oidcClientTsUserToTokens.ts +74 -35
- package/src/oidc/ongoingLoginOrRefreshProcesses.ts +60 -0
- package/src/oidc/persistedAuthState.ts +66 -8
- package/src/react/react.tsx +8 -16
- package/src/tools/{ephemeralSessionStorage.ts → EphemeralSessionStorage.ts} +59 -27
- package/src/tools/Evt.ts +56 -0
- package/src/tools/StatefulEvt.ts +38 -0
- package/src/tools/parseKeycloakIssuerUri.ts +9 -1
- package/src/tools/subscribeToUserInteraction.ts +0 -1
- package/src/tools/workerTimers.ts +10 -12
- package/tools/EphemeralSessionStorage.d.ts +12 -0
- package/tools/{ephemeralSessionStorage.js → EphemeralSessionStorage.js} +29 -16
- package/tools/EphemeralSessionStorage.js.map +1 -0
- package/tools/Evt.d.ts +11 -0
- package/tools/{AwaitableEventEmitter.js → Evt.js} +24 -8
- package/tools/Evt.js.map +1 -0
- package/tools/StatefulEvt.d.ts +12 -0
- package/tools/StatefulEvt.js +24 -0
- package/tools/StatefulEvt.js.map +1 -0
- package/tools/parseKeycloakIssuerUri.js +5 -1
- package/tools/parseKeycloakIssuerUri.js.map +1 -1
- package/tools/subscribeToUserInteraction.js +2 -3
- package/tools/subscribeToUserInteraction.js.map +1 -1
- package/tools/workerTimers.js +11 -13
- package/tools/workerTimers.js.map +1 -1
- package/oidc/isUserActive.d.ts +0 -13
- package/oidc/isUserActive.js.map +0 -1
- package/src/tools/AwaitableEventEmitter.ts +0 -33
- package/src/tools/StatefulObservable.ts +0 -52
- package/tools/AwaitableEventEmitter.d.ts +0 -5
- package/tools/AwaitableEventEmitter.js.map +0 -1
- package/tools/StatefulObservable.d.ts +0 -12
- package/tools/StatefulObservable.js +0 -33
- package/tools/StatefulObservable.js.map +0 -1
- package/tools/ephemeralSessionStorage.d.ts +0 -3
- package/tools/ephemeralSessionStorage.js.map +0 -1
package/oidc/loginSilent.js
CHANGED
|
@@ -35,62 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __values = (this && this.__values) || function(o) {
|
|
39
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
-
if (m) return m.call(o);
|
|
41
|
-
if (o && typeof o.length === "number") return {
|
|
42
|
-
next: function () {
|
|
43
|
-
if (o && i >= o.length) o = void 0;
|
|
44
|
-
return { value: o && o[i++], done: !o };
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
-
};
|
|
49
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
50
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
51
|
-
if (!m) return o;
|
|
52
|
-
var i = m.call(o), r, ar = [], e;
|
|
53
|
-
try {
|
|
54
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
55
|
-
}
|
|
56
|
-
catch (error) { e = { error: error }; }
|
|
57
|
-
finally {
|
|
58
|
-
try {
|
|
59
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
60
|
-
}
|
|
61
|
-
finally { if (e) throw e.error; }
|
|
62
|
-
}
|
|
63
|
-
return ar;
|
|
64
|
-
};
|
|
65
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
-
exports.authResponseToUrl = authResponseToUrl;
|
|
67
39
|
exports.loginSilent = loginSilent;
|
|
68
40
|
var Deferred_1 = require("../tools/Deferred");
|
|
69
41
|
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
70
42
|
var StateData_1 = require("./StateData");
|
|
71
43
|
var getDownlinkAndRtt_1 = require("../tools/getDownlinkAndRtt");
|
|
72
44
|
var isDev_1 = require("../tools/isDev");
|
|
73
|
-
|
|
74
|
-
return data instanceof Object && "state" in data && typeof data.state === "string";
|
|
75
|
-
}
|
|
76
|
-
function authResponseToUrl(authResponse) {
|
|
77
|
-
var e_1, _a;
|
|
78
|
-
var authResponseUrl = new URL("https://dummy.com");
|
|
79
|
-
try {
|
|
80
|
-
for (var _b = __values(Object.entries(authResponse)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
81
|
-
var _d = __read(_c.value, 2), name_1 = _d[0], value = _d[1];
|
|
82
|
-
authResponseUrl.searchParams.set(name_1, value);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
86
|
-
finally {
|
|
87
|
-
try {
|
|
88
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
89
|
-
}
|
|
90
|
-
finally { if (e_1) throw e_1.error; }
|
|
91
|
-
}
|
|
92
|
-
return authResponseUrl.href;
|
|
93
|
-
}
|
|
45
|
+
var AuthResponse_1 = require("./AuthResponse");
|
|
94
46
|
function loginSilent(params) {
|
|
95
47
|
return __awaiter(this, void 0, void 0, function () {
|
|
96
48
|
var oidcClientTsUserManager, stateQueryParamValue_instance, configId, getExtraTokenParams, dResult, timeoutDelayMs, timeout, listener;
|
|
@@ -123,7 +75,7 @@ function loginSilent(params) {
|
|
|
123
75
|
});
|
|
124
76
|
}); }, timeoutDelayMs);
|
|
125
77
|
listener = function (event) {
|
|
126
|
-
if (!getIsAuthResponse(event.data)) {
|
|
78
|
+
if (!(0, AuthResponse_1.getIsAuthResponse)(event.data)) {
|
|
127
79
|
return;
|
|
128
80
|
}
|
|
129
81
|
var authResponse = event.data;
|
|
@@ -151,7 +103,7 @@ function loginSilent(params) {
|
|
|
151
103
|
extraTokenParams: getExtraTokenParams === null || getExtraTokenParams === void 0 ? void 0 : getExtraTokenParams()
|
|
152
104
|
})
|
|
153
105
|
.then(function (oidcClientTsUser) {
|
|
154
|
-
(0, tsafe_1.assert)(oidcClientTsUser !== null);
|
|
106
|
+
(0, tsafe_1.assert)(oidcClientTsUser !== null, "oidcClientTsUser is not supposed to be null here");
|
|
155
107
|
clearTimeout(timeout);
|
|
156
108
|
dResult.resolve({
|
|
157
109
|
outcome: "token refreshed using refresh token",
|
package/oidc/loginSilent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/oidc/loginSilent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/oidc/loginSilent.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,10 @@ function getPrOtherTabLogout(params) {
|
|
|
30
30
|
channel.onmessage = function (_a) {
|
|
31
31
|
var message = _a.data;
|
|
32
32
|
(0, tsafe_1.assert)((0, tsafe_1.is)(message));
|
|
33
|
-
channel.close();
|
|
34
33
|
if (message.appInstanceId === globalContext.appInstanceId) {
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
36
|
+
channel.close();
|
|
37
37
|
var redirectUrl = (function () {
|
|
38
38
|
if (configId === message.configId) {
|
|
39
39
|
return message.redirectUrl_initiator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logoutPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/oidc/logoutPropagationToOtherTabs.ts"],"names":[],"mappings":";;;AA8BA,0DAgBC;AAED,kDAkCC;AAlFD,kDAAsD;AACtD,8CAA6C;AAE7C,IAAM,kBAAkB,GAAG,uDAAuD,CAAC;AAUnF,MAAA,MAAM,CAAC,kBAAkB,qCAAzB,MAAM,CAAC,kBAAkB,IAAM;IAC3B,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,EAAC;AAEF,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAQjD,SAAS,cAAc,CAAC,MAAuC;IACnD,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IACvC,OAAO,sCAA+B,mBAAmB,CAAE,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAIvC;IACW,IAAA,WAAW,GAA0B,MAAM,YAAhC,EAAE,QAAQ,GAAgB,MAAM,SAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;IAEpD,IAAM,OAAO,GAAY;QACrB,qBAAqB,EAAE,WAAW;QAClC,QAAQ,UAAA;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAC5F,OAAO,CACV,CAAC;AACN,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAInC;IACW,IAAA,SAAS,GAAwB,MAAM,UAA9B,EAAE,QAAQ,GAAc,MAAM,SAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAEhD,IAAM,eAAe,GAAG,IAAI,mBAAQ,EAA2B,CAAC;IAEhE,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErG,OAAO,CAAC,SAAS,GAAG,UAAC,EAAiB;YAAT,OAAO,UAAA;QAChC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,
|
|
1
|
+
{"version":3,"file":"logoutPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/oidc/logoutPropagationToOtherTabs.ts"],"names":[],"mappings":";;;AA8BA,0DAgBC;AAED,kDAkCC;AAlFD,kDAAsD;AACtD,8CAA6C;AAE7C,IAAM,kBAAkB,GAAG,uDAAuD,CAAC;AAUnF,MAAA,MAAM,CAAC,kBAAkB,qCAAzB,MAAM,CAAC,kBAAkB,IAAM;IAC3B,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,EAAC;AAEF,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAQjD,SAAS,cAAc,CAAC,MAAuC;IACnD,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IACvC,OAAO,sCAA+B,mBAAmB,CAAE,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAIvC;IACW,IAAA,WAAW,GAA0B,MAAM,YAAhC,EAAE,QAAQ,GAAgB,MAAM,SAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;IAEpD,IAAM,OAAO,GAAY;QACrB,qBAAqB,EAAE,WAAW;QAClC,QAAQ,UAAA;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAC5F,OAAO,CACV,CAAC;AACN,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAInC;IACW,IAAA,SAAS,GAAwB,MAAM,UAA9B,EAAE,QAAQ,GAAc,MAAM,SAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAEhD,IAAM,eAAe,GAAG,IAAI,mBAAQ,EAA2B,CAAC;IAEhE,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErG,OAAO,CAAC,SAAS,GAAG,UAAC,EAAiB;YAAT,OAAO,UAAA;QAChC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAM,WAAW,GAAG,CAAC;YACjB,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC,qBAAqB,CAAC;YACzC,CAAC;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;QAEL,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC;IAE5C,OAAO,EAAE,gBAAgB,kBAAA,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -7,6 +7,6 @@ export declare function oidcClientTsUserToTokens<DecodedIdToken extends Record<s
|
|
|
7
7
|
};
|
|
8
8
|
__unsafe_useIdTokenAsAccessToken: boolean;
|
|
9
9
|
decodedIdToken_previous: DecodedIdToken | undefined;
|
|
10
|
-
log:
|
|
10
|
+
log: typeof console.log | undefined;
|
|
11
11
|
}): Oidc.Tokens<DecodedIdToken>;
|
|
12
12
|
export declare function getMsBeforeExpiration(tokens: Oidc.Tokens): number;
|
|
@@ -18,12 +18,13 @@ var readExpirationTimeInJwt_1 = require("../tools/readExpirationTimeInJwt");
|
|
|
18
18
|
var decodeJwt_1 = require("../tools/decodeJwt");
|
|
19
19
|
function oidcClientTsUserToTokens(params) {
|
|
20
20
|
var oidcClientTsUser = params.oidcClientTsUser, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_useIdTokenAsAccessToken = params.__unsafe_useIdTokenAsAccessToken, decodedIdToken_previous = params.decodedIdToken_previous, log = params.log;
|
|
21
|
+
var isFirstInit = decodedIdToken_previous === undefined;
|
|
21
22
|
var accessToken = oidcClientTsUser.access_token;
|
|
22
23
|
var accessTokenExpirationTime = (function () {
|
|
23
|
-
|
|
24
|
+
read_from_token_response: {
|
|
24
25
|
var expires_at = oidcClientTsUser.expires_at;
|
|
25
26
|
if (expires_at === undefined) {
|
|
26
|
-
break
|
|
27
|
+
break read_from_token_response;
|
|
27
28
|
}
|
|
28
29
|
return expires_at * 1000;
|
|
29
30
|
}
|
|
@@ -39,7 +40,7 @@ function oidcClientTsUserToTokens(params) {
|
|
|
39
40
|
var refreshToken = oidcClientTsUser.refresh_token;
|
|
40
41
|
var refreshTokenExpirationTime = (function () {
|
|
41
42
|
if (refreshToken === undefined) {
|
|
42
|
-
return
|
|
43
|
+
return undefined;
|
|
43
44
|
}
|
|
44
45
|
read_from_jwt: {
|
|
45
46
|
var expirationTime = (0, readExpirationTimeInJwt_1.readExpirationTimeInJwt)(refreshToken);
|
|
@@ -48,17 +49,35 @@ function oidcClientTsUserToTokens(params) {
|
|
|
48
49
|
}
|
|
49
50
|
return expirationTime;
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
"Couldn't read the expiration time of the refresh token from the jwt",
|
|
53
|
-
"It's ok. Some OIDC server like Microsoft Entra ID does not use JWT for the refresh token.",
|
|
54
|
-
"Be aware that it prevent you from implementing the auto logout mechanism: https://docs.oidc-spa.dev/v/v6/auto-logout",
|
|
55
|
-
"If you need auto logout you'll have to provide use the __unsafe_ssoSessionIdleSeconds param."
|
|
56
|
-
].join("\n"));
|
|
57
|
-
return Number.POSITIVE_INFINITY;
|
|
52
|
+
return undefined;
|
|
58
53
|
})();
|
|
59
54
|
var idToken = oidcClientTsUser.id_token;
|
|
60
55
|
(0, tsafe_1.assert)(idToken !== undefined, "No id token provided by the oidc server");
|
|
61
|
-
var
|
|
56
|
+
var decodedIdToken = (function () {
|
|
57
|
+
var decodedIdToken = (0, decodeJwt_1.decodeJwt)(idToken);
|
|
58
|
+
if (isFirstInit) {
|
|
59
|
+
log === null || log === void 0 ? void 0 : log([
|
|
60
|
+
"Decoded ID token",
|
|
61
|
+
decodedIdTokenSchema === undefined ? "" : " before `decodedIdTokenSchema.parse()`\n",
|
|
62
|
+
JSON.stringify(decodedIdToken, null, 2)
|
|
63
|
+
].join(""));
|
|
64
|
+
}
|
|
65
|
+
if (decodedIdTokenSchema !== undefined) {
|
|
66
|
+
decodedIdToken = decodedIdTokenSchema.parse(decodedIdToken);
|
|
67
|
+
if (isFirstInit) {
|
|
68
|
+
log === null || log === void 0 ? void 0 : log([
|
|
69
|
+
"Decoded ID token after `decodedIdTokenSchema.parse()`\n",
|
|
70
|
+
JSON.stringify(decodedIdToken, null, 2)
|
|
71
|
+
].join(""));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (decodedIdToken_previous !== undefined &&
|
|
75
|
+
JSON.stringify(decodedIdToken) === JSON.stringify(decodedIdToken_previous)) {
|
|
76
|
+
return decodedIdToken_previous;
|
|
77
|
+
}
|
|
78
|
+
return decodedIdToken;
|
|
79
|
+
})();
|
|
80
|
+
var tokens_common = __assign(__assign({}, (__unsafe_useIdTokenAsAccessToken
|
|
62
81
|
? {
|
|
63
82
|
accessToken: idToken,
|
|
64
83
|
accessTokenExpirationTime: (function () {
|
|
@@ -67,24 +86,27 @@ function oidcClientTsUserToTokens(params) {
|
|
|
67
86
|
return expirationTime;
|
|
68
87
|
})()
|
|
69
88
|
}
|
|
70
|
-
: { accessToken: accessToken, accessTokenExpirationTime: accessTokenExpirationTime })), {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
: { accessToken: accessToken, accessTokenExpirationTime: accessTokenExpirationTime })), { idToken: idToken, decodedIdToken: decodedIdToken });
|
|
90
|
+
var tokens = refreshToken === undefined
|
|
91
|
+
? (0, tsafe_1.id)(__assign(__assign({}, tokens_common), { hasRefreshToken: false }))
|
|
92
|
+
: (0, tsafe_1.id)(__assign(__assign({}, tokens_common), { hasRefreshToken: true, refreshToken: refreshToken, refreshTokenExpirationTime: refreshTokenExpirationTime }));
|
|
93
|
+
if (isFirstInit &&
|
|
94
|
+
tokens.hasRefreshToken &&
|
|
95
|
+
tokens.refreshTokenExpirationTime !== undefined &&
|
|
96
|
+
tokens.refreshTokenExpirationTime < tokens.accessTokenExpirationTime) {
|
|
97
|
+
console.warn([
|
|
98
|
+
"The OIDC refresh token shorter than the one of the access token.",
|
|
99
|
+
"This is very unusual and probably a misconfiguration."
|
|
100
|
+
].join(" "));
|
|
101
|
+
}
|
|
81
102
|
return tokens;
|
|
82
103
|
}
|
|
83
104
|
function getMsBeforeExpiration(tokens) {
|
|
105
|
+
var _a;
|
|
84
106
|
// NOTE: In general the access token is supposed to have a shorter
|
|
85
107
|
// lifespan than the refresh token but we don't want to make any
|
|
86
108
|
// assumption here.
|
|
87
|
-
var tokenExpirationTime = Math.min(tokens.accessTokenExpirationTime, tokens.refreshTokenExpirationTime);
|
|
109
|
+
var tokenExpirationTime = Math.min(tokens.accessTokenExpirationTime, (_a = tokens.refreshTokenExpirationTime) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY);
|
|
88
110
|
var msBeforeExpiration = Math.min(tokenExpirationTime - Date.now(),
|
|
89
111
|
// NOTE: We want to make sure we do not overflow the setTimeout
|
|
90
112
|
// that must be a 32 bit unsigned integer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidcClientTsUserToTokens.js","sourceRoot":"","sources":["../src/oidc/oidcClientTsUserToTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"oidcClientTsUserToTokens.js","sourceRoot":"","sources":["../src/oidc/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare const GLOBAL_CONTEXT_KEY = "__oidc-spa.ongoingLoginOrRefreshProcesses.globalContext";
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
[GLOBAL_CONTEXT_KEY]: {
|
|
5
|
+
prDone_arr: Promise<void>[];
|
|
6
|
+
prUnlock: Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare function startLoginOrRefreshProcess(): Promise<{
|
|
11
|
+
completeLoginOrRefreshProcess: () => void;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function waitForAllOtherOngoingLoginOrRefreshProcessesToComplete(params: {
|
|
14
|
+
prUnlock: Promise<void>;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var _a;
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.startLoginOrRefreshProcess = startLoginOrRefreshProcess;
|
|
41
|
+
exports.waitForAllOtherOngoingLoginOrRefreshProcessesToComplete = waitForAllOtherOngoingLoginOrRefreshProcessesToComplete;
|
|
42
|
+
var Deferred_1 = require("../tools/Deferred");
|
|
43
|
+
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
44
|
+
var GLOBAL_CONTEXT_KEY = "__oidc-spa.ongoingLoginOrRefreshProcesses.globalContext";
|
|
45
|
+
(_a = window[GLOBAL_CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (window[GLOBAL_CONTEXT_KEY] = {
|
|
46
|
+
prDone_arr: [],
|
|
47
|
+
prUnlock: Promise.resolve()
|
|
48
|
+
});
|
|
49
|
+
var globalContext = window[GLOBAL_CONTEXT_KEY];
|
|
50
|
+
function startLoginOrRefreshProcess() {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
+
function completeLoginOrRefreshProcess() {
|
|
53
|
+
var index = prDone_arr.indexOf(dDone.pr);
|
|
54
|
+
(0, tsafe_1.assert)(index !== -1);
|
|
55
|
+
prDone_arr.splice(index, 1);
|
|
56
|
+
dDone.resolve();
|
|
57
|
+
}
|
|
58
|
+
var dDone, prDone_arr;
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
switch (_a.label) {
|
|
61
|
+
case 0: return [4 /*yield*/, globalContext.prUnlock];
|
|
62
|
+
case 1:
|
|
63
|
+
_a.sent();
|
|
64
|
+
dDone = new Deferred_1.Deferred();
|
|
65
|
+
prDone_arr = globalContext.prDone_arr;
|
|
66
|
+
prDone_arr.push(dDone.pr);
|
|
67
|
+
return [2 /*return*/, { completeLoginOrRefreshProcess: completeLoginOrRefreshProcess }];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function waitForAllOtherOngoingLoginOrRefreshProcessesToComplete(params) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
74
|
+
var prUnlock, prUnlock_current;
|
|
75
|
+
var _this = this;
|
|
76
|
+
return __generator(this, function (_a) {
|
|
77
|
+
switch (_a.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
prUnlock = params.prUnlock;
|
|
80
|
+
prUnlock_current = globalContext.prUnlock;
|
|
81
|
+
globalContext.prUnlock = (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
82
|
+
return __generator(this, function (_a) {
|
|
83
|
+
switch (_a.label) {
|
|
84
|
+
case 0: return [4 /*yield*/, prUnlock_current];
|
|
85
|
+
case 1:
|
|
86
|
+
_a.sent();
|
|
87
|
+
return [4 /*yield*/, prUnlock];
|
|
88
|
+
case 2:
|
|
89
|
+
_a.sent();
|
|
90
|
+
return [2 /*return*/];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}); })();
|
|
94
|
+
return [4 /*yield*/, Promise.all(globalContext.prDone_arr)];
|
|
95
|
+
case 1:
|
|
96
|
+
_a.sent();
|
|
97
|
+
return [2 /*return*/];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ongoingLoginOrRefreshProcesses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ongoingLoginOrRefreshProcesses.js","sourceRoot":"","sources":["../src/oidc/ongoingLoginOrRefreshProcesses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,gEAsBC;AAED,0HAcC;AA3DD,8CAA6C;AAC7C,kDAAkD;AAElD,IAAM,kBAAkB,GAAG,yDAAyD,CAAC;AAWrF,MAAA,MAAM,CAAC,kBAAkB,qCAAzB,MAAM,CAAC,kBAAkB,IAAM;IAC3B,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;CAC9B,EAAC;AAEF,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEjD,SAAsB,0BAA0B;;QAW5C,SAAS,6BAA6B;YAClC,IAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3C,IAAA,cAAM,EAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAErB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE5B,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;;;;wBAhBD,qBAAM,aAAa,CAAC,QAAQ,EAAA;;oBAA5B,SAA4B,CAAC;oBAEvB,KAAK,GAAG,IAAI,mBAAQ,EAAQ,CAAC;oBAE3B,UAAU,GAAK,aAAa,WAAlB,CAAmB;oBAErC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAY1B,sBAAO,EAAE,6BAA6B,+BAAA,EAAE,EAAC;;;;CAC5C;AAED,SAAsB,uDAAuD,CAAC,MAE7E;;;;;;;oBACW,QAAQ,GAAK,MAAM,SAAX,CAAY;oBAEtB,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;oBAEhD,aAAa,CAAC,QAAQ,GAAG,CAAC;;;wCACtB,qBAAM,gBAAgB,EAAA;;oCAAtB,SAAsB,CAAC;oCAEvB,qBAAM,QAAQ,EAAA;;oCAAd,SAAc,CAAC;;;;yBAClB,CAAC,EAAE,CAAC;oBAEL,qBAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,EAAA;;oBAA3C,SAA2C,CAAC;;;;;CAC/C"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
type PersistedAuthState =
|
|
1
|
+
type PersistedAuthState = PersistedAuthState.LoggedIn | PersistedAuthState.ExplicitlyLoggedOut;
|
|
2
|
+
declare namespace PersistedAuthState {
|
|
3
|
+
type Common = {
|
|
4
|
+
__brand: "PersistedAuthState-v1";
|
|
5
|
+
};
|
|
6
|
+
export type LoggedIn = Common & {
|
|
7
|
+
stateDescription: "logged in";
|
|
8
|
+
untilTime: number | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type ExplicitlyLoggedOut = Common & {
|
|
11
|
+
stateDescription: "explicitly logged out";
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
}
|
|
2
15
|
export declare function persistAuthState(params: {
|
|
3
16
|
configId: string;
|
|
4
|
-
state: PersistedAuthState | undefined;
|
|
17
|
+
state: Omit<PersistedAuthState.ExplicitlyLoggedOut, "__brand"> | Omit<PersistedAuthState.LoggedIn, "__brand"> | undefined;
|
|
5
18
|
}): void;
|
|
6
19
|
export declare function getPersistedAuthState(params: {
|
|
7
20
|
configId: string;
|
|
8
|
-
}): PersistedAuthState | undefined;
|
|
21
|
+
}): PersistedAuthState["stateDescription"] | undefined;
|
|
9
22
|
export {};
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.persistAuthState = persistAuthState;
|
|
4
15
|
exports.getPersistedAuthState = getPersistedAuthState;
|
|
@@ -14,15 +25,35 @@ function persistAuthState(params) {
|
|
|
14
25
|
localStorage.removeItem(key);
|
|
15
26
|
return;
|
|
16
27
|
}
|
|
17
|
-
localStorage.setItem(key, state);
|
|
28
|
+
localStorage.setItem(key, JSON.stringify((0, tsafe_1.id)(__assign({ __brand: "PersistedAuthState-v1" }, state))));
|
|
18
29
|
}
|
|
19
30
|
function getPersistedAuthState(params) {
|
|
20
31
|
var configId = params.configId;
|
|
21
|
-
var
|
|
32
|
+
var key = getKey({ configId: configId });
|
|
33
|
+
var value = localStorage.getItem(key);
|
|
22
34
|
if (value === null) {
|
|
23
35
|
return undefined;
|
|
24
36
|
}
|
|
25
|
-
|
|
26
|
-
|
|
37
|
+
var state;
|
|
38
|
+
try {
|
|
39
|
+
state = JSON.parse(value);
|
|
40
|
+
}
|
|
41
|
+
catch (_a) {
|
|
42
|
+
localStorage.removeItem(key);
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
if (!(0, tsafe_1.typeGuard)(state, state instanceof Object &&
|
|
46
|
+
"__brand" in state &&
|
|
47
|
+
state.__brand === (0, tsafe_1.id)("PersistedAuthState-v1"))) {
|
|
48
|
+
localStorage.removeItem(key);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if (state.stateDescription === "logged in") {
|
|
52
|
+
if (state.untilTime !== undefined && state.untilTime <= Date.now()) {
|
|
53
|
+
localStorage.removeItem(key);
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return state.stateDescription;
|
|
27
58
|
}
|
|
28
59
|
//# sourceMappingURL=persistedAuthState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistedAuthState.js","sourceRoot":"","sources":["../src/oidc/persistedAuthState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"persistedAuthState.js","sourceRoot":"","sources":["../src/oidc/persistedAuthState.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAwBA,4CAyBC;AAED,sDA0CC;AA7FD,kDAAyD;AAEzD,SAAS,MAAM,CAAC,MAA4B;IAChC,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;IAE5B,OAAO,8BAAuB,QAAQ,CAAE,CAAC;AAC7C,CAAC;AAkBD,SAAgB,gBAAgB,CAAC,MAMhC;IACW,IAAA,QAAQ,GAAY,MAAM,SAAlB,EAAE,KAAK,GAAK,MAAM,MAAX,CAAY;IAEnC,IAAM,GAAG,GAAG,MAAM,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IAEjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO;IACX,CAAC;IAED,YAAY,CAAC,OAAO,CAChB,GAAG,EACH,IAAI,CAAC,SAAS,CACV,IAAA,UAAE,aACE,OAAO,EAAE,uBAAuB,IAC7B,KAAK,EACV,CACL,CACJ,CAAC;AACN,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAErC;IACW,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;IAE5B,IAAM,GAAG,GAAG,MAAM,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IAEjC,IAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAExC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAc,CAAC;IAEnB,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,WAAM,CAAC;QACL,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IACI,CAAC,IAAA,iBAAS,EACN,KAAK,EACL,KAAK,YAAY,MAAM;QACnB,SAAS,IAAI,KAAK;QAClB,KAAK,CAAC,OAAO,KAAK,IAAA,UAAE,EAAgC,uBAAuB,CAAC,CACnF,EACH,CAAC;QACC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACjE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,gBAAgB,CAAC;AAClC,CAAC"}
|