Files
cats/client/src/lib/auth.ts

38 lines
823 B
TypeScript

const TOKEN_KEY = 'kotogram_token';
const USER_KEY = 'kotogram_user';
export interface User {
id: number;
username: string;
points: number;
is_admin?: boolean;
avatar_url?: string | null;
created_at?: string;
}
export function getToken(): string | null {
return localStorage.getItem(TOKEN_KEY);
}
export function setToken(token: string): void {
localStorage.setItem(TOKEN_KEY, token);
}
export function getUser(): User | null {
const raw = localStorage.getItem(USER_KEY);
return raw ? JSON.parse(raw) : null;
}
export function setUser(user: User): void {
localStorage.setItem(USER_KEY, JSON.stringify(user));
}
export function clearAuth(): void {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(USER_KEY);
}
export function isAuthenticated(): boolean {
return !!getToken();
}