// src/contexts/AuthContext.js import React, { useState, createContext, useEffect } from 'react'; import axios from 'axios'; const AuthContext = createContext(); export const AuthProvider = ({ children }) => { const [currentUser, setCurrentUser] = useState(null); const login = async (email, password) => { try { const response = await axios.post('/api/login', { email, password }); if (response.data.token) { localStorage.setItem('token', response.data.token); // сохраняем токен в Local Storage setCurrentUser(response.data.user); } } catch (err) { console.error(err.response ? err.response.data : err.message); } }; const register = async (name, email, password) => { try { const response = await axios.post('/api/register', { name, email, password }); if (response.data.token) { localStorage.setItem('token', response.data.token); setCurrentUser(response.data.user); } } catch (err) { console.error(err.response ? err.response.data : err.message); } }; const logout = () => { localStorage.removeItem('token'); setCurrentUser(null); }; useEffect(() => { const token = localStorage.getItem('token'); if (token) { axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; } }, []); return ( {children} ); }; export default AuthContext;