my dashboard is done

This commit is contained in:
suryacp23 2026-07-15 12:51:16 +05:30
parent 26bf86b9fe
commit e8732bf436

View File

@ -36,11 +36,18 @@ export class ZinoClient {
this.onAuthError = fn;
}
setToken(token: string | null): void {
setToken(token: string | null, user?: User | null): void {
this.token = token;
if (typeof window === 'undefined') return;
if (token) localStorage.setItem(TOKEN_KEY, token);
else localStorage.removeItem(TOKEN_KEY);
if (token) {
localStorage.setItem(TOKEN_KEY, token);
if (user) {
localStorage.setItem(TOKEN_KEY + '_user', JSON.stringify(user));
}
} else {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(TOKEN_KEY + '_user');
}
}
getToken(): string | null {
@ -94,7 +101,7 @@ export class ZinoClient {
password,
...(orgId ? { org_id: Number(orgId) } : {}),
});
this.setToken(res.token);
this.setToken(res.token, res.user);
return res;
}
@ -105,13 +112,27 @@ export class ZinoClient {
/** Decode the persisted JWT into a User (no network). */
currentUser(): User | null {
if (!this.token) return null;
// First, try to retrieve the user object stored during login
if (typeof window !== 'undefined') {
try {
const storedUser = localStorage.getItem(TOKEN_KEY + '_user');
if (storedUser) {
return JSON.parse(storedUser);
}
} catch (e) {
// ignore JSON parse errors
}
}
try {
const p = JSON.parse(atob(this.token.split('.')[1]));
console.log('--- JWT PAYLOAD ---', p);
return {
id: String(p.user_id ?? p.sub ?? ''),
org_id: String(p.org_id ?? ''),
name: p.name ?? '',
email: p.email ?? '',
name: p.name ?? p.given_name ?? '',
email: p.email ?? p.preferred_username ?? p.upn ?? p.username ?? '',
roles: p.roles ?? [],
groups: p.groups ?? [],
};