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

37 lines
797 B
TypeScript

const TOKEN_KEY = 'catstagram_token';
const USER_KEY = 'catstagram_user';
export interface User {
id: number;
username: string;
points: number;
is_admin?: boolean;
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();
}