feat(auth): implement session store - token + user management

This commit is contained in:
2026-08-06 16:30:02 +00:00
parent 75dd560baf
commit 60d8835e99
+34 -2
View File
@@ -1,2 +1,34 @@
export type SessionUser = { username: string; role: string } | null; const TOKEN_KEY = 'nm_token';
export function getSessionUser(): SessionUser { return null; }
export type SessionUser = {
id: number;
username: string;
email: string | null;
role: string;
disabled: boolean;
force_password_change: boolean;
} | null;
let _token: string | null = null;
let _user: SessionUser = null;
export function getToken(): string | null {
if (_token) return _token;
_token = window.localStorage.getItem(TOKEN_KEY);
return _token;
}
export function setToken(token: string): void {
_token = token;
window.localStorage.setItem(TOKEN_KEY, token);
}
export function clearSession(): void {
_token = null;
_user = null;
window.localStorage.removeItem(TOKEN_KEY);
}
export function getSessionUser(): SessionUser { return _user; }
export function setSessionUser(user: SessionUser): void { _user = user; }
export function isAdmin(): boolean { return _user?.role === 'admin'; }