oidc-spa 10.0.8 → 10.1.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/core/createOidc.js +1 -1
- package/core/oidcClientTsUserToTokens.js +27 -5
- package/core/oidcClientTsUserToTokens.js.map +1 -1
- package/esm/core/createOidc.mjs +1 -1
- package/esm/core/oidcClientTsUserToTokens.mjs +27 -5
- package/esm/core/oidcClientTsUserToTokens.mjs.map +1 -1
- package/esm/nuxt-spa/index.d.ts +3 -0
- package/esm/nuxt-spa/index.mjs +24 -0
- package/esm/nuxt-spa/index.mjs.map +1 -0
- package/package.json +11 -1
- package/src/core/oidcClientTsUserToTokens.ts +39 -5
- package/src/nuxt-spa/index.ts +28 -0
package/core/createOidc.js
CHANGED
|
@@ -76,7 +76,7 @@ const StateDataCookie_1 = require("./StateDataCookie");
|
|
|
76
76
|
const loadWebcryptoLinerShim_1 = require("../tools/loadWebcryptoLinerShim");
|
|
77
77
|
const lazySessionStorage_2 = require("../tools/lazySessionStorage");
|
|
78
78
|
// NOTE: Replaced at build time
|
|
79
|
-
const VERSION = "10.0
|
|
79
|
+
const VERSION = "10.1.0";
|
|
80
80
|
const globalContext = {
|
|
81
81
|
prOidcByConfigId: new Map(),
|
|
82
82
|
hasLogoutBeenCalled: (0, id_1.id)(false),
|
|
@@ -47,10 +47,7 @@ function createOidcClientTsUserToTokens(params) {
|
|
|
47
47
|
return decodedIdToken;
|
|
48
48
|
})();
|
|
49
49
|
const issuedAtTime = (() => {
|
|
50
|
-
|
|
51
|
-
// We don't use Date.now() due to network latency or if the
|
|
52
|
-
// local clock is inaccurate.
|
|
53
|
-
const id_token_iat = (() => {
|
|
50
|
+
let id_token_iat = (() => {
|
|
54
51
|
let iat;
|
|
55
52
|
try {
|
|
56
53
|
const iat_claimValue = decodedIdToken_original.iat;
|
|
@@ -66,7 +63,32 @@ function createOidcClientTsUserToTokens(params) {
|
|
|
66
63
|
return iat;
|
|
67
64
|
})();
|
|
68
65
|
if (id_token_iat === undefined) {
|
|
69
|
-
return
|
|
66
|
+
return oidcClientTsUser.__oidc_spa_localTimeWhenTokenIssued;
|
|
67
|
+
}
|
|
68
|
+
correct_entra_builtin_skew: {
|
|
69
|
+
// See: https://github.com/keycloakify/oidc-spa/issues/162
|
|
70
|
+
const { expires_in } = oidcClientTsUser.__oidc_spa_tokenResponse;
|
|
71
|
+
if (expires_in === undefined) {
|
|
72
|
+
break correct_entra_builtin_skew;
|
|
73
|
+
}
|
|
74
|
+
(0, assert_1.assert)(typeof expires_in === "number", "203333425");
|
|
75
|
+
let access_token_iat;
|
|
76
|
+
let access_token_exp;
|
|
77
|
+
try {
|
|
78
|
+
const decodedAccessToken = (0, decodeJwt_1.decodeJwt)(accessToken);
|
|
79
|
+
(0, assert_1.assert)(decodedAccessToken instanceof Object);
|
|
80
|
+
const { iat, exp } = decodedAccessToken;
|
|
81
|
+
(0, assert_1.assert)(typeof iat === "number");
|
|
82
|
+
(0, assert_1.assert)(typeof exp === "number");
|
|
83
|
+
access_token_iat = iat;
|
|
84
|
+
access_token_exp = exp;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
break correct_entra_builtin_skew;
|
|
88
|
+
}
|
|
89
|
+
const access_token_expires_in = access_token_exp - access_token_iat;
|
|
90
|
+
const builtin_skew_sec = access_token_expires_in - expires_in;
|
|
91
|
+
id_token_iat += builtin_skew_sec;
|
|
70
92
|
}
|
|
71
93
|
return id_token_iat * 1000;
|
|
72
94
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidcClientTsUserToTokens.js","sourceRoot":"","sources":["../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"oidcClientTsUserToTokens.js","sourceRoot":"","sources":["../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"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"}
|
package/esm/core/createOidc.mjs
CHANGED
|
@@ -36,7 +36,7 @@ import { setStateDataCookieIfEnabled, clearStateDataCookie, getIsStateDataCookie
|
|
|
36
36
|
import { loadWebcryptoLinerShim, hasLoadWebcryptoLinerShimBeenCalled } from "../tools/loadWebcryptoLinerShim.mjs";
|
|
37
37
|
import { SESSION_STORAGE_GLOBAL_PREFIX } from "../tools/lazySessionStorage.mjs";
|
|
38
38
|
// NOTE: Replaced at build time
|
|
39
|
-
const VERSION = "10.0
|
|
39
|
+
const VERSION = "10.1.0";
|
|
40
40
|
const globalContext = {
|
|
41
41
|
prOidcByConfigId: new Map(),
|
|
42
42
|
hasLogoutBeenCalled: id(false),
|
|
@@ -44,10 +44,7 @@ export function createOidcClientTsUserToTokens(params) {
|
|
|
44
44
|
return decodedIdToken;
|
|
45
45
|
})();
|
|
46
46
|
const issuedAtTime = (() => {
|
|
47
|
-
|
|
48
|
-
// We don't use Date.now() due to network latency or if the
|
|
49
|
-
// local clock is inaccurate.
|
|
50
|
-
const id_token_iat = (() => {
|
|
47
|
+
let id_token_iat = (() => {
|
|
51
48
|
let iat;
|
|
52
49
|
try {
|
|
53
50
|
const iat_claimValue = decodedIdToken_original.iat;
|
|
@@ -63,7 +60,32 @@ export function createOidcClientTsUserToTokens(params) {
|
|
|
63
60
|
return iat;
|
|
64
61
|
})();
|
|
65
62
|
if (id_token_iat === undefined) {
|
|
66
|
-
return
|
|
63
|
+
return oidcClientTsUser.__oidc_spa_localTimeWhenTokenIssued;
|
|
64
|
+
}
|
|
65
|
+
correct_entra_builtin_skew: {
|
|
66
|
+
// See: https://github.com/keycloakify/oidc-spa/issues/162
|
|
67
|
+
const { expires_in } = oidcClientTsUser.__oidc_spa_tokenResponse;
|
|
68
|
+
if (expires_in === undefined) {
|
|
69
|
+
break correct_entra_builtin_skew;
|
|
70
|
+
}
|
|
71
|
+
assert(typeof expires_in === "number", "203333425");
|
|
72
|
+
let access_token_iat;
|
|
73
|
+
let access_token_exp;
|
|
74
|
+
try {
|
|
75
|
+
const decodedAccessToken = decodeJwt(accessToken);
|
|
76
|
+
assert(decodedAccessToken instanceof Object);
|
|
77
|
+
const { iat, exp } = decodedAccessToken;
|
|
78
|
+
assert(typeof iat === "number");
|
|
79
|
+
assert(typeof exp === "number");
|
|
80
|
+
access_token_iat = iat;
|
|
81
|
+
access_token_exp = exp;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
break correct_entra_builtin_skew;
|
|
85
|
+
}
|
|
86
|
+
const access_token_expires_in = access_token_exp - access_token_iat;
|
|
87
|
+
const builtin_skew_sec = access_token_expires_in - expires_in;
|
|
88
|
+
id_token_iat += builtin_skew_sec;
|
|
67
89
|
}
|
|
68
90
|
return id_token_iat * 1000;
|
|
69
91
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidcClientTsUserToTokens.mjs","sourceRoot":"","sources":["../../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAuC,MAAM,2BAA2B,CAAC;AAGxG,MAAM,UAAU,8BAA8B,CAAiD,MAW9F;IACG,MAAM,EACF,QAAQ,EACR,oBAAoB,EACpB,gCAAgC,EAChC,YAAY,EACZ,yBAAyB,EACzB,GAAG,EACN,GAAG,MAAM,CAAC;IAEX,SAAS,wBAAwB,CAAC,MAGjC;QACG,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;QAE7D,MAAM,WAAW,GAAG,uBAAuB,KAAK,SAAS,CAAC;QAE1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAElD,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC;QAEpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAE1C,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,yCAAyC,CAAC,CAAC;QAEzE,MAAM,uBAAuB,GAAG,SAAS,CAA0C,OAAO,CAAC,CAAC;QAE5F,IAAI,WAAW,EAAE,CAAC;YACd,GAAG,EAAE,CACD;gBACI,kBAAkB;gBAClB,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C;gBACpF,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;aACnD,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;QACN,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;YACzB,IAAI,cAA8B,CAAC;YAEnC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAErE,IAAI,WAAW,EAAE,CAAC;oBACd,GAAG,EAAE,CACD;wBACI,yDAAyD;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,cAAc,GAAG,uBAAuB,CAAC;YAC7C,CAAC;YAED,IACI,uBAAuB,KAAK,SAAS;gBACrC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAC5E,CAAC;gBACC,2EAA2E;gBAC3E,OAAO,uBAAuB,CAAC;YACnC,CAAC;YAED,OAAO,cAAc,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;YACvB,
|
|
1
|
+
{"version":3,"file":"oidcClientTsUserToTokens.mjs","sourceRoot":"","sources":["../../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAuC,MAAM,2BAA2B,CAAC;AAGxG,MAAM,UAAU,8BAA8B,CAAiD,MAW9F;IACG,MAAM,EACF,QAAQ,EACR,oBAAoB,EACpB,gCAAgC,EAChC,YAAY,EACZ,yBAAyB,EACzB,GAAG,EACN,GAAG,MAAM,CAAC;IAEX,SAAS,wBAAwB,CAAC,MAGjC;QACG,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;QAE7D,MAAM,WAAW,GAAG,uBAAuB,KAAK,SAAS,CAAC;QAE1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAElD,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC;QAEpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAE1C,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,yCAAyC,CAAC,CAAC;QAEzE,MAAM,uBAAuB,GAAG,SAAS,CAA0C,OAAO,CAAC,CAAC;QAE5F,IAAI,WAAW,EAAE,CAAC;YACd,GAAG,EAAE,CACD;gBACI,kBAAkB;gBAClB,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C;gBACpF,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;aACnD,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;QACN,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;YACzB,IAAI,cAA8B,CAAC;YAEnC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAErE,IAAI,WAAW,EAAE,CAAC;oBACd,GAAG,EAAE,CACD;wBACI,yDAAyD;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,cAAc,GAAG,uBAAuB,CAAC;YAC7C,CAAC;YAED,IACI,uBAAuB,KAAK,SAAS;gBACrC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAC5E,CAAC;gBACC,2EAA2E;gBAC3E,OAAO,uBAAuB,CAAC;YACnC,CAAC;YAED,OAAO,cAAc,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;YACvB,IAAI,YAAY,GAAG,CAAC,GAAG,EAAE;gBACrB,IAAI,GAAuB,CAAC;gBAE5B,IAAI,CAAC;oBACD,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC;oBACnD,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC;oBAC3E,GAAG,GAAG,cAAc,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACL,GAAG,GAAG,SAAS,CAAC;gBACpB,CAAC;gBAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACpB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO,GAAG,CAAC;YACf,CAAC,CAAC,EAAE,CAAC;YAEL,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,gBAAgB,CAAC,mCAAmC,CAAC;YAChE,CAAC;YAED,0BAA0B,EAAE,CAAC;gBACzB,0DAA0D;gBAE1D,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;gBAEjE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,0BAA0B,CAAC;gBACrC,CAAC;gBAED,MAAM,CAAC,OAAO,UAAU,KAAK,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAEpD,IAAI,gBAAwB,CAAC;gBAC7B,IAAI,gBAAwB,CAAC;gBAE7B,IAAI,CAAC;oBACD,MAAM,kBAAkB,GAAG,SAAS,CAA0B,WAAW,CAAC,CAAC;oBAE3E,MAAM,CAAC,kBAAkB,YAAY,MAAM,CAAC,CAAC;oBAE7C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC;oBAExC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;oBAChC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;oBAEhC,gBAAgB,GAAG,GAAG,CAAC;oBACvB,gBAAgB,GAAG,GAAG,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACL,MAAM,0BAA0B,CAAC;gBACrC,CAAC;gBAED,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;gBAEpE,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,UAAU,CAAC;gBAE9D,YAAY,IAAI,gBAAgB,CAAC;YACrC,CAAC;YAED,OAAO,YAAY,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,8BAA8B,GAAmC;YACnE,kBAAkB,EAAE,gBAAgB,CAAC,mCAAmC;YACxE,YAAY;SACf,CAAC;QAEF,MAAM,aAAa,GAAuC;YACtD,GAAG,CAAC,gCAAgC;gBAChC,CAAC,CAAC;oBACI,WAAW,EAAE,OAAO;oBACpB,yBAAyB,EAAE,CAAC,GAAG,EAAE;wBAC7B,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;wBAExD,MAAM,CACF,cAAc,KAAK,SAAS,EAC5B,oGAAoG,CACvG,CAAC;wBAEF,OAAO,cAAc,CAAC;oBAC1B,CAAC,CAAC,EAAE;iBACP;gBACH,CAAC,CAAC;oBACI,WAAW;oBACX,yBAAyB,EAAE,CAAC,GAAG,EAAE;wBAC7B,aAAa,EAAE,CAAC;4BACZ,MAAM,cAAc,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;4BAE5D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gCAC/B,MAAM,aAAa,CAAC;4BACxB,CAAC;4BAED,OAAO,cAAc,CAAC;wBAC1B,CAAC;wBAED,mCAAmC,EAAE,CAAC;4BAClC,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;4BAEjE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gCAC3B,MAAM,mCAAmC,CAAC;4BAC9C,CAAC;4BAED,MAAM,CAAC,OAAO,UAAU,KAAK,QAAQ,EAAE,SAAS,CAAC,CAAC;4BAElD,OAAO,UAAU,GAAG,IAAI,CAAC;wBAC7B,CAAC;wBAED,mCAAmC,EAAE,CAAC;4BAClC,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;4BAEjE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gCAC3B,MAAM,mCAAmC,CAAC;4BAC9C,CAAC;4BAED,MAAM,CAAC,OAAO,UAAU,KAAK,QAAQ,EAAE,WAAW,CAAC,CAAC;4BAEpD,OAAO,YAAY,GAAG,UAAU,GAAG,IAAK,CAAC;wBAC7C,CAAC;wBAED,MAAM,CAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;oBAChE,CAAC,CAAC,EAAE;iBACP,CAAC;YACR,OAAO;YACP,cAAc;YACd,uBAAuB;YACvB,YAAY;YACZ,gBAAgB,EAAE,sBAAsB,CAAC,8BAA8B,CAAC;SAC3E,CAAC;QAEF,MAAM,MAAM,GACR,YAAY,KAAK,SAAS;YACtB,CAAC,CAAC,EAAE,CAAkD;gBAChD,GAAG,aAAa;gBAChB,eAAe,EAAE,KAAK;aACzB,CAAC;YACJ,CAAC,CAAC,EAAE,CAA+C;gBAC7C,GAAG,aAAa;gBAChB,eAAe,EAAE,IAAI;gBACrB,YAAY;gBACZ,0BAA0B,EAAE,CAAC,GAAG,EAAE;oBAC9B,KAAK,MAAM,YAAY,IAAI;wBACvB,oBAAoB;wBACpB,0BAA0B;qBACpB,EAAE,CAAC;wBACT,MAAM,SAAS,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;wBAE1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC1B,SAAS;wBACb,CAAC;wBAED,MAAM,CAAC,OAAO,SAAS,KAAK,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAEjD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;4BAClB,OAAO,aAAa,CAAC;wBACzB,CAAC;wBAED,OAAO,SAAS,GAAG,IAAI,CAAC;oBAC5B,CAAC;oBAED,KAAK,MAAM,YAAY,IAAI;wBACvB,oBAAoB;wBACpB,0BAA0B;qBACpB,EAAE,CAAC;wBACT,MAAM,SAAS,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;wBAE1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC1B,SAAS;wBACb,CAAC;wBAED,MAAM,CAAC,OAAO,SAAS,KAAK,QAAQ,EAAE,YAAY,CAAC,CAAC;wBAEpD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;4BAClB,OAAO,aAAa,CAAC;wBACzB,CAAC;wBAED,OAAO,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;oBAC3C,CAAC;oBAED,aAAa,EAAE,CAAC;wBACZ,MAAM,cAAc,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;wBAE7D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;4BAC/B,MAAM,aAAa,CAAC;wBACxB,CAAC;wBAED,OAAO,cAAc,CAAC;oBAC1B,CAAC;oBAED,OAAO,SAAS,CAAC;gBACrB,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;QAEb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,0BAA0B,CAAC;gBACpC,QAAQ;gBACR,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,8BAA8B;aACjC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,yBAAyB,CAAC,qBAAqB,CAAC;gBACjE,QAAQ;gBACR,MAAM;aACT,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;YAC9C,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QACpD,CAAC;QAED,IACI,WAAW;YACX,MAAM,CAAC,eAAe;YACtB,MAAM,CAAC,0BAA0B,KAAK,SAAS;YAC/C,MAAM,CAAC,0BAA0B,GAAG,MAAM,CAAC,yBAAyB,EACtE,CAAC;YACC,OAAO,CAAC,IAAI,CACR;gBACI,oFAAoF;gBACpF,uDAAuD;aAC1D,CAAC,IAAI,CAAC,GAAG,CAAC,CACd,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defineNuxtModule, addVitePlugin } from "@nuxt/kit";
|
|
2
|
+
import { oidcSpa } from "../vite-plugin/index.mjs";
|
|
3
|
+
export const nuxtOidcSpaModule = defineNuxtModule().with({
|
|
4
|
+
meta: {
|
|
5
|
+
name: "oidc-spa",
|
|
6
|
+
configKey: "oidcSpa", // nuxt.config.ts: { oidcSpa: { ... } }
|
|
7
|
+
compatibility: {
|
|
8
|
+
nuxt: ">=3.0.0"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
setup(resolvedOptions, nuxt) {
|
|
12
|
+
// Check if SSR is disabled
|
|
13
|
+
if (nuxt.options.ssr !== false) {
|
|
14
|
+
throw new Error("Oidc-spa module requires SSR to be disabled. Please set `ssr: false` in your nuxt.config.ts.");
|
|
15
|
+
}
|
|
16
|
+
// Add vite plugin to only client side
|
|
17
|
+
addVitePlugin(oidcSpa(resolvedOptions || undefined), {
|
|
18
|
+
client: true,
|
|
19
|
+
server: false
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
export default nuxtOidcSpaModule;
|
|
24
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/nuxt-spa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAgC,MAAM,gBAAgB,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,EAA2B,CAAC,IAAI,CAAC;IAC9E,IAAI,EAAE;QACF,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,SAAS,EAAE,uCAAuC;QAC7D,aAAa,EAAE;YACX,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,CAAC,eAAe,EAAE,IAAI;QACvB,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACX,8FAA8F,CACjG,CAAC;QACN,CAAC;QAED,sCAAsC;QACtC,aAAa,CAAC,OAAO,CAAC,eAAe,IAAI,SAAS,CAAC,EAAE;YACjD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oidc-spa",
|
|
3
|
-
"version": "10.0
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"description": "OpenID Connect / OAuth2 solution for client-first Web Applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"@angular/common": "*",
|
|
26
26
|
"@angular/core": "*",
|
|
27
27
|
"@angular/router": "*",
|
|
28
|
+
"@nuxt/kit": "*",
|
|
28
29
|
"@tanstack/react-router": "*",
|
|
29
30
|
"@tanstack/react-start": "*",
|
|
30
31
|
"@types/react": "*",
|
|
@@ -50,6 +51,9 @@
|
|
|
50
51
|
"@angular/common": {
|
|
51
52
|
"optional": true
|
|
52
53
|
},
|
|
54
|
+
"@nuxt/kit": {
|
|
55
|
+
"optional": true
|
|
56
|
+
},
|
|
53
57
|
"@tanstack/react-start": {
|
|
54
58
|
"optional": true
|
|
55
59
|
},
|
|
@@ -91,6 +95,12 @@
|
|
|
91
95
|
"import": "./esm/vite-plugin/index.mjs",
|
|
92
96
|
"default": "./esm/vite-plugin/index.mjs"
|
|
93
97
|
},
|
|
98
|
+
"./nuxt-spa": {
|
|
99
|
+
"types": "./esm/nuxt-spa/index.d.ts",
|
|
100
|
+
"module": "./esm/nuxt-spa/index.mjs",
|
|
101
|
+
"import": "./esm/nuxt-spa/index.mjs",
|
|
102
|
+
"default": "./esm/nuxt-spa/index.mjs"
|
|
103
|
+
},
|
|
94
104
|
"./server": {
|
|
95
105
|
"module": "./esm/server/index.mjs",
|
|
96
106
|
"import": "./esm/server/index.mjs",
|
|
@@ -88,10 +88,7 @@ export function createOidcClientTsUserToTokens<DecodedIdToken extends Record<str
|
|
|
88
88
|
})();
|
|
89
89
|
|
|
90
90
|
const issuedAtTime = (() => {
|
|
91
|
-
|
|
92
|
-
// We don't use Date.now() due to network latency or if the
|
|
93
|
-
// local clock is inaccurate.
|
|
94
|
-
const id_token_iat = (() => {
|
|
91
|
+
let id_token_iat = (() => {
|
|
95
92
|
let iat: number | undefined;
|
|
96
93
|
|
|
97
94
|
try {
|
|
@@ -110,7 +107,44 @@ export function createOidcClientTsUserToTokens<DecodedIdToken extends Record<str
|
|
|
110
107
|
})();
|
|
111
108
|
|
|
112
109
|
if (id_token_iat === undefined) {
|
|
113
|
-
return
|
|
110
|
+
return oidcClientTsUser.__oidc_spa_localTimeWhenTokenIssued;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
correct_entra_builtin_skew: {
|
|
114
|
+
// See: https://github.com/keycloakify/oidc-spa/issues/162
|
|
115
|
+
|
|
116
|
+
const { expires_in } = oidcClientTsUser.__oidc_spa_tokenResponse;
|
|
117
|
+
|
|
118
|
+
if (expires_in === undefined) {
|
|
119
|
+
break correct_entra_builtin_skew;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
assert(typeof expires_in === "number", "203333425");
|
|
123
|
+
|
|
124
|
+
let access_token_iat: number;
|
|
125
|
+
let access_token_exp: number;
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
const decodedAccessToken = decodeJwt<Record<string, unknown>>(accessToken);
|
|
129
|
+
|
|
130
|
+
assert(decodedAccessToken instanceof Object);
|
|
131
|
+
|
|
132
|
+
const { iat, exp } = decodedAccessToken;
|
|
133
|
+
|
|
134
|
+
assert(typeof iat === "number");
|
|
135
|
+
assert(typeof exp === "number");
|
|
136
|
+
|
|
137
|
+
access_token_iat = iat;
|
|
138
|
+
access_token_exp = exp;
|
|
139
|
+
} catch {
|
|
140
|
+
break correct_entra_builtin_skew;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const access_token_expires_in = access_token_exp - access_token_iat;
|
|
144
|
+
|
|
145
|
+
const builtin_skew_sec = access_token_expires_in - expires_in;
|
|
146
|
+
|
|
147
|
+
id_token_iat += builtin_skew_sec;
|
|
114
148
|
}
|
|
115
149
|
|
|
116
150
|
return id_token_iat * 1000;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineNuxtModule, addVitePlugin } from "@nuxt/kit";
|
|
2
|
+
import { oidcSpa, type OidcSpaVitePluginParams } from "../vite-plugin";
|
|
3
|
+
|
|
4
|
+
export const nuxtOidcSpaModule = defineNuxtModule<OidcSpaVitePluginParams>().with({
|
|
5
|
+
meta: {
|
|
6
|
+
name: "oidc-spa",
|
|
7
|
+
configKey: "oidcSpa", // nuxt.config.ts: { oidcSpa: { ... } }
|
|
8
|
+
compatibility: {
|
|
9
|
+
nuxt: ">=3.0.0"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
setup(resolvedOptions, nuxt) {
|
|
13
|
+
// Check if SSR is disabled
|
|
14
|
+
if (nuxt.options.ssr !== false) {
|
|
15
|
+
throw new Error(
|
|
16
|
+
"Oidc-spa module requires SSR to be disabled. Please set `ssr: false` in your nuxt.config.ts."
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Add vite plugin to only client side
|
|
21
|
+
addVitePlugin(oidcSpa(resolvedOptions || undefined), {
|
|
22
|
+
client: true,
|
|
23
|
+
server: false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export default nuxtOidcSpaModule;
|