@spidy092/auth-client 3.1.4 → 3.1.5

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.
@@ -5,8 +5,10 @@ import { useEffect as useEffect3, useCallback } from "react";
5
5
  // token.js
6
6
  import { jwtDecode } from "jwt-decode";
7
7
  var accessToken = null;
8
+ var idToken = null;
8
9
  var listeners = /* @__PURE__ */ new Set();
9
10
  var REFRESH_COOKIE = "account_refresh_token";
11
+ var ID_TOKEN_KEY = "auth_id_token";
10
12
  var COOKIE_MAX_AGE = 7 * 24 * 60 * 60;
11
13
  function secureAttribute() {
12
14
  var _a;
@@ -85,12 +87,14 @@ function getToken() {
85
87
  function clearToken() {
86
88
  if (!accessToken) {
87
89
  writeAccessToken(null);
90
+ clearIdToken();
88
91
  clearRefreshToken();
89
92
  return;
90
93
  }
91
94
  const previousToken = accessToken;
92
95
  accessToken = null;
93
96
  writeAccessToken(null);
97
+ clearIdToken();
94
98
  clearRefreshToken();
95
99
  listeners.forEach((listener) => {
96
100
  try {
@@ -100,6 +104,30 @@ function clearToken() {
100
104
  }
101
105
  });
102
106
  }
107
+ function setIdToken(token) {
108
+ idToken = token || null;
109
+ try {
110
+ if (idToken) sessionStorage.setItem(ID_TOKEN_KEY, idToken);
111
+ else sessionStorage.removeItem(ID_TOKEN_KEY);
112
+ } catch {
113
+ }
114
+ }
115
+ function getIdToken() {
116
+ if (idToken) return idToken;
117
+ try {
118
+ idToken = sessionStorage.getItem(ID_TOKEN_KEY) || null;
119
+ } catch {
120
+ idToken = null;
121
+ }
122
+ return idToken;
123
+ }
124
+ function clearIdToken() {
125
+ idToken = null;
126
+ try {
127
+ sessionStorage.removeItem(ID_TOKEN_KEY);
128
+ } catch {
129
+ }
130
+ }
103
131
  var REFRESH_TOKEN_KEY = "auth_refresh_token";
104
132
  var _persistRefreshToken = false;
105
133
  function enableRefreshTokenPersistence(enabled) {
@@ -445,6 +473,7 @@ async function logout(options = {}) {
445
473
  const { clientKey, authBaseUrl, accountUiUrl } = getConfig();
446
474
  const scope = options.scope === "client" ? "client" : "sso";
447
475
  const token = getToken();
476
+ const idToken2 = getIdToken();
448
477
  const refreshToken2 = getRefreshToken();
449
478
  console.log("\u{1F6AA} Smart Logout initiated", {
450
479
  mode: isRouterMode() ? "ROUTER" : "CLIENT",
@@ -453,6 +482,7 @@ async function logout(options = {}) {
453
482
  });
454
483
  emitAuthDiagnostic("LOGOUT_INITIATED", "PENDING", "NONE", { clientKey });
455
484
  clearToken();
485
+ clearIdToken();
456
486
  clearRefreshToken();
457
487
  sessionStorage.removeItem("originalApp");
458
488
  sessionStorage.removeItem("returnUrl");
@@ -465,7 +495,7 @@ async function logout(options = {}) {
465
495
  "Authorization": token ? `Bearer ${token}` : "",
466
496
  "Content-Type": "application/json"
467
497
  },
468
- body: JSON.stringify({ refreshToken: refreshToken2, scope })
498
+ body: JSON.stringify({ refreshToken: refreshToken2, idToken: idToken2, scope })
469
499
  });
470
500
  if (!response.ok) {
471
501
  throw new Error(`Logout failed: ${response.status}`);
@@ -499,9 +529,11 @@ async function logout(options = {}) {
499
529
  function handleCallback() {
500
530
  const params = new URLSearchParams(window.location.search);
501
531
  const accessToken2 = params.get("access_token");
532
+ const idToken2 = params.get("id_token");
502
533
  const error = params.get("error");
503
534
  console.log("\u{1F504} Callback handling:", {
504
535
  hasAccessToken: !!accessToken2,
536
+ hasIdToken: !!idToken2,
505
537
  error
506
538
  });
507
539
  if (callbackProcessed) {
@@ -529,6 +561,7 @@ function handleCallback() {
529
561
  }
530
562
  if (accessToken2) {
531
563
  setToken(accessToken2);
564
+ if (idToken2) setIdToken(idToken2);
532
565
  const refreshTokenInUrl = params.get("refresh_token");
533
566
  if (refreshTokenInUrl) {
534
567
  emitAuthDiagnostic("CALLBACK_REFRESH_TOKEN_IGNORED", "WARNING", "REFRESH_TOKEN_IN_URL", {
@@ -537,6 +570,7 @@ function handleCallback() {
537
570
  }
538
571
  const url = new URL(window.location);
539
572
  url.searchParams.delete("access_token");
573
+ url.searchParams.delete("id_token");
540
574
  url.searchParams.delete("refresh_token");
541
575
  url.searchParams.delete("state");
542
576
  url.searchParams.delete("error");
@@ -1241,6 +1275,9 @@ var auth = {
1241
1275
  getToken,
1242
1276
  setToken,
1243
1277
  clearToken,
1278
+ setIdToken,
1279
+ getIdToken,
1280
+ clearIdToken,
1244
1281
  setRefreshToken,
1245
1282
  // ✅ Refresh token for HTTP dev
1246
1283
  getRefreshToken,