cosmo/frontend/src/utils/auth.ts

51 lines
1.0 KiB
TypeScript

/**
* Authentication utilities
*/
const TOKEN_KEY = 'cosmo_token';
const USER_KEY = 'cosmo_user';
export const auth = {
// Get token from localStorage
getToken(): string | null {
return localStorage.getItem(TOKEN_KEY);
},
// Save token to localStorage
setToken(token: string): void {
localStorage.setItem(TOKEN_KEY, token);
},
// Remove token from localStorage
removeToken(): void {
localStorage.removeItem(TOKEN_KEY);
},
// Check if user is logged in
isLoggedIn(): boolean {
return !!this.getToken();
},
// Get user info from localStorage
getUser(): any {
const userStr = localStorage.getItem(USER_KEY);
return userStr ? JSON.parse(userStr) : null;
},
// Save user info to localStorage
setUser(user: any): void {
localStorage.setItem(USER_KEY, JSON.stringify(user));
},
// Remove user info from localStorage
removeUser(): void {
localStorage.removeItem(USER_KEY);
},
// Logout - clear all auth data
logout(): void {
this.removeToken();
this.removeUser();
},
};