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.
@@ -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.8";
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
- // NOTE: The id_token is always a JWT as per the protocol.
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 Date.now();
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":"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"}
1
+ {"version":3,"file":"oidcClientTsUserToTokens.js","sourceRoot":"","sources":["../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"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"}
@@ -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.8";
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
- // NOTE: The id_token is always a JWT as per the protocol.
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 Date.now();
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":"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"}
1
+ {"version":3,"file":"oidcClientTsUserToTokens.mjs","sourceRoot":"","sources":["../../src/core/oidcClientTsUserToTokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type OidcSpaVitePluginParams } from "../vite-plugin";
2
+ export declare const nuxtOidcSpaModule: import("@nuxt/schema").NuxtModule<OidcSpaVitePluginParams, Partial<OidcSpaVitePluginParams>, true>;
3
+ export default nuxtOidcSpaModule;
@@ -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.8",
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
- // NOTE: The id_token is always a JWT as per the protocol.
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 Date.now();
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;