import apiService from './api';
class AuthService {
private tokenKey = 'mcp_auth_token';
private userKey = 'mcp_user';
async login(username: string, password: string): Promise<boolean> {
try {
const response = await apiService.login(username, password);
this.setToken(response.token);
this.setUser(response.user);
apiService.setAuthToken(response.token);
return true;
} catch (error) {
console.error('Login failed:', error);
return false;
}
}
logout() {
this.removeToken();
this.removeUser();
apiService.setAuthToken(null);
}
setToken(token: string) {
localStorage.setItem(this.tokenKey, token);
}
getToken(): string | null {
return localStorage.getItem(this.tokenKey);
}
removeToken() {
localStorage.removeItem(this.tokenKey);
}
setUser(user: any) {
localStorage.setItem(this.userKey, JSON.stringify(user));
}
getUser(): any {
const userStr = localStorage.getItem(this.userKey);
return userStr ? JSON.parse(userStr) : null;
}
removeUser() {
localStorage.removeItem(this.userKey);
}
isAuthenticated(): boolean {
return !!this.getToken();
}
initializeAuth() {
const token = this.getToken();
if (token) {
apiService.setAuthToken(token);
}
}
}
export default new AuthService();