@spidy092/auth-client 3.1.3 → 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.
- package/dist/api.cjs +34 -0
- package/dist/api.cjs.map +1 -1
- package/dist/api.js +34 -0
- package/dist/api.js.map +1 -1
- package/dist/index.cjs +194 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +194 -31
- package/dist/index.js.map +1 -1
- package/dist/preferences.cjs +34 -0
- package/dist/preferences.cjs.map +1 -1
- package/dist/preferences.js +34 -0
- package/dist/preferences.js.map +1 -1
- package/dist/react/AuthProvider.cjs +188 -31
- package/dist/react/AuthProvider.cjs.map +1 -1
- package/dist/react/AuthProvider.js +188 -31
- package/dist/react/AuthProvider.js.map +1 -1
- package/dist/react/PreferencesProvider.cjs +34 -0
- package/dist/react/PreferencesProvider.cjs.map +1 -1
- package/dist/react/PreferencesProvider.js +34 -0
- package/dist/react/PreferencesProvider.js.map +1 -1
- package/dist/react/useAuth.cjs.map +1 -1
- package/dist/react/useAuth.js.map +1 -1
- package/dist/react/useSessionMonitor.cjs +61 -1
- package/dist/react/useSessionMonitor.cjs.map +1 -1
- package/dist/react/useSessionMonitor.js +61 -1
- package/dist/react/useSessionMonitor.js.map +1 -1
- package/dist/utils/jwt.cjs.map +1 -1
- package/dist/utils/jwt.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,8 +38,10 @@ var import_react4 = require("react");
|
|
|
38
38
|
// token.js
|
|
39
39
|
var import_jwt_decode = require("jwt-decode");
|
|
40
40
|
var accessToken = null;
|
|
41
|
+
var idToken = null;
|
|
41
42
|
var listeners = /* @__PURE__ */ new Set();
|
|
42
43
|
var REFRESH_COOKIE = "account_refresh_token";
|
|
44
|
+
var ID_TOKEN_KEY = "auth_id_token";
|
|
43
45
|
var COOKIE_MAX_AGE = 7 * 24 * 60 * 60;
|
|
44
46
|
function secureAttribute() {
|
|
45
47
|
var _a;
|
|
@@ -118,12 +120,14 @@ function getToken() {
|
|
|
118
120
|
function clearToken() {
|
|
119
121
|
if (!accessToken) {
|
|
120
122
|
writeAccessToken(null);
|
|
123
|
+
clearIdToken();
|
|
121
124
|
clearRefreshToken();
|
|
122
125
|
return;
|
|
123
126
|
}
|
|
124
127
|
const previousToken = accessToken;
|
|
125
128
|
accessToken = null;
|
|
126
129
|
writeAccessToken(null);
|
|
130
|
+
clearIdToken();
|
|
127
131
|
clearRefreshToken();
|
|
128
132
|
listeners.forEach((listener) => {
|
|
129
133
|
try {
|
|
@@ -133,6 +137,30 @@ function clearToken() {
|
|
|
133
137
|
}
|
|
134
138
|
});
|
|
135
139
|
}
|
|
140
|
+
function setIdToken(token) {
|
|
141
|
+
idToken = token || null;
|
|
142
|
+
try {
|
|
143
|
+
if (idToken) sessionStorage.setItem(ID_TOKEN_KEY, idToken);
|
|
144
|
+
else sessionStorage.removeItem(ID_TOKEN_KEY);
|
|
145
|
+
} catch {
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function getIdToken() {
|
|
149
|
+
if (idToken) return idToken;
|
|
150
|
+
try {
|
|
151
|
+
idToken = sessionStorage.getItem(ID_TOKEN_KEY) || null;
|
|
152
|
+
} catch {
|
|
153
|
+
idToken = null;
|
|
154
|
+
}
|
|
155
|
+
return idToken;
|
|
156
|
+
}
|
|
157
|
+
function clearIdToken() {
|
|
158
|
+
idToken = null;
|
|
159
|
+
try {
|
|
160
|
+
sessionStorage.removeItem(ID_TOKEN_KEY);
|
|
161
|
+
} catch {
|
|
162
|
+
}
|
|
163
|
+
}
|
|
136
164
|
var REFRESH_TOKEN_KEY = "auth_refresh_token";
|
|
137
165
|
var _persistRefreshToken = false;
|
|
138
166
|
function enableRefreshTokenPersistence(enabled) {
|
|
@@ -377,6 +405,28 @@ function clearLoginLock() {
|
|
|
377
405
|
} catch {
|
|
378
406
|
}
|
|
379
407
|
}
|
|
408
|
+
async function reportClientDiagnostic(safe) {
|
|
409
|
+
if (typeof fetch !== "function" || typeof getToken !== "function") return;
|
|
410
|
+
if (safe.outcome === "SUCCESS" && !safe.event.startsWith("PROFILE_") && !safe.event.startsWith("SESSION_")) return;
|
|
411
|
+
const { authBaseUrl } = getConfig();
|
|
412
|
+
const token = getToken();
|
|
413
|
+
if (!authBaseUrl || !token) return;
|
|
414
|
+
try {
|
|
415
|
+
await fetch(`${authBaseUrl.replace(/\/+$/, "")}/client-telemetry`, {
|
|
416
|
+
method: "POST",
|
|
417
|
+
credentials: "include",
|
|
418
|
+
keepalive: true,
|
|
419
|
+
headers: {
|
|
420
|
+
"Content-Type": "application/json",
|
|
421
|
+
Authorization: `Bearer ${token}`,
|
|
422
|
+
"X-Correlation-ID": safe.correlationId,
|
|
423
|
+
"X-Request-ID": safe.correlationId
|
|
424
|
+
},
|
|
425
|
+
body: JSON.stringify(safe)
|
|
426
|
+
});
|
|
427
|
+
} catch {
|
|
428
|
+
}
|
|
429
|
+
}
|
|
380
430
|
async function emitAuthDiagnostic(event, outcome, reasonCode, details = {}) {
|
|
381
431
|
const context = getDiagnosticContext();
|
|
382
432
|
const safe = {
|
|
@@ -393,6 +443,7 @@ async function emitAuthDiagnostic(event, outcome, reasonCode, details = {}) {
|
|
|
393
443
|
};
|
|
394
444
|
const method = outcome === "FAILURE" ? "error" : outcome === "WARNING" ? "warn" : "info";
|
|
395
445
|
console[method]("[auth-client]", safe);
|
|
446
|
+
void reportClientDiagnostic(safe);
|
|
396
447
|
return safe;
|
|
397
448
|
}
|
|
398
449
|
|
|
@@ -455,6 +506,7 @@ async function logout(options = {}) {
|
|
|
455
506
|
const { clientKey, authBaseUrl, accountUiUrl } = getConfig();
|
|
456
507
|
const scope = options.scope === "client" ? "client" : "sso";
|
|
457
508
|
const token = getToken();
|
|
509
|
+
const idToken2 = getIdToken();
|
|
458
510
|
const refreshToken2 = getRefreshToken();
|
|
459
511
|
console.log("\u{1F6AA} Smart Logout initiated", {
|
|
460
512
|
mode: isRouterMode() ? "ROUTER" : "CLIENT",
|
|
@@ -463,6 +515,7 @@ async function logout(options = {}) {
|
|
|
463
515
|
});
|
|
464
516
|
emitAuthDiagnostic("LOGOUT_INITIATED", "PENDING", "NONE", { clientKey });
|
|
465
517
|
clearToken();
|
|
518
|
+
clearIdToken();
|
|
466
519
|
clearRefreshToken();
|
|
467
520
|
sessionStorage.removeItem("originalApp");
|
|
468
521
|
sessionStorage.removeItem("returnUrl");
|
|
@@ -475,7 +528,7 @@ async function logout(options = {}) {
|
|
|
475
528
|
"Authorization": token ? `Bearer ${token}` : "",
|
|
476
529
|
"Content-Type": "application/json"
|
|
477
530
|
},
|
|
478
|
-
body: JSON.stringify({ refreshToken: refreshToken2, scope })
|
|
531
|
+
body: JSON.stringify({ refreshToken: refreshToken2, idToken: idToken2, scope })
|
|
479
532
|
});
|
|
480
533
|
if (!response.ok) {
|
|
481
534
|
throw new Error(`Logout failed: ${response.status}`);
|
|
@@ -509,9 +562,11 @@ async function logout(options = {}) {
|
|
|
509
562
|
function handleCallback() {
|
|
510
563
|
const params = new URLSearchParams(window.location.search);
|
|
511
564
|
const accessToken2 = params.get("access_token");
|
|
565
|
+
const idToken2 = params.get("id_token");
|
|
512
566
|
const error = params.get("error");
|
|
513
567
|
console.log("\u{1F504} Callback handling:", {
|
|
514
568
|
hasAccessToken: !!accessToken2,
|
|
569
|
+
hasIdToken: !!idToken2,
|
|
515
570
|
error
|
|
516
571
|
});
|
|
517
572
|
if (callbackProcessed) {
|
|
@@ -539,6 +594,7 @@ function handleCallback() {
|
|
|
539
594
|
}
|
|
540
595
|
if (accessToken2) {
|
|
541
596
|
setToken(accessToken2);
|
|
597
|
+
if (idToken2) setIdToken(idToken2);
|
|
542
598
|
const refreshTokenInUrl = params.get("refresh_token");
|
|
543
599
|
if (refreshTokenInUrl) {
|
|
544
600
|
emitAuthDiagnostic("CALLBACK_REFRESH_TOKEN_IGNORED", "WARNING", "REFRESH_TOKEN_IN_URL", {
|
|
@@ -547,6 +603,7 @@ function handleCallback() {
|
|
|
547
603
|
}
|
|
548
604
|
const url = new URL(window.location);
|
|
549
605
|
url.searchParams.delete("access_token");
|
|
606
|
+
url.searchParams.delete("id_token");
|
|
550
607
|
url.searchParams.delete("refresh_token");
|
|
551
608
|
url.searchParams.delete("state");
|
|
552
609
|
url.searchParams.delete("error");
|
|
@@ -1251,6 +1308,9 @@ var auth = {
|
|
|
1251
1308
|
getToken,
|
|
1252
1309
|
setToken,
|
|
1253
1310
|
clearToken,
|
|
1311
|
+
setIdToken,
|
|
1312
|
+
getIdToken,
|
|
1313
|
+
clearIdToken,
|
|
1254
1314
|
setRefreshToken,
|
|
1255
1315
|
// ✅ Refresh token for HTTP dev
|
|
1256
1316
|
getRefreshToken,
|