Refactored UI and compose file

This commit is contained in:
2026-09-17 07:07:05 +02:00
parent 2d74f7f1bd
commit 831d57a8a0
47 changed files with 9718 additions and 10088 deletions
+18 -18
View File
@@ -2,22 +2,22 @@
* Lightweight browser-safe JWT payload decoder without external native dependencies.
*/
export function parseJwtClaims(token: string): Record<string, any> {
if (!token || typeof token !== 'string') return {};
try {
const parts = token.split('.');
if (parts.length < 2) return {};
const base64Url = parts[1];
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
const jsonPayload = decodeURIComponent(
window
.atob(base64)
.split('')
.map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
.join('')
);
return JSON.parse(jsonPayload);
} catch (err) {
console.debug('Failed to decode JWT claims payload:', err);
return {};
}
if (!token || typeof token !== 'string') return {};
try {
const parts = token.split('.');
if (parts.length < 2) return {};
const base64Url = parts[1];
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
const jsonPayload = decodeURIComponent(
window
.atob(base64)
.split('')
.map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
.join('')
);
return JSON.parse(jsonPayload);
} catch (err) {
console.debug('Failed to decode JWT claims payload:', err);
return {};
}
}