Spaces:
Running
Running
File size: 769 Bytes
2ecc4a7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import { create } from 'zustand';
import api from '../api/client';
export const useAuthStore = create((set) => ({
user: null,
isAuthenticated: !!sessionStorage.getItem('token'),
login: async (username, password) => {
try {
const formData = new FormData();
formData.append('username', username);
formData.append('password', password);
const { data } = await api.post('/auth/login', formData);
sessionStorage.setItem('token', data.access_token);
set({ isAuthenticated: true });
return true;
} catch (error) {
console.error('Login failed', error);
return false;
}
},
logout: () => {
sessionStorage.removeItem('token');
set({ user: null, isAuthenticated: false });
},
}));
|