51 lines
1.0 KiB
TypeScript
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();
|
|
},
|
|
};
|