From d96b345026b045a6ac241d34246c7b1d940a62fb Mon Sep 17 00:00:00 2001 From: Tatyana Date: Tue, 19 Aug 2025 12:51:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8=20=D0=B2=20?= =?UTF-8?q?login/auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Login.tsx | 226 +++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 130 deletions(-) diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index 474b4bd..b82bf44 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -18,105 +18,105 @@ export default function LoginPage() { const [rememberMe, setRememberMe] = useState(false) const [activeTab, setActiveTab] = useState<"login" | "register">("login") - // Состояние и обработчики регистрационной формы / локальное состояние + // Состояние и обработчики регистрационной формы / локальное состояние const [registerFormData, setRegisterFormData] = useState({ email: "", // Removed firstName, lastName password: "", confirmPassword: "", - name: "", + name: "", }) const [showRegisterPassword, setShowRegisterPassword] = useState(false) const [showConfirmRegisterPassword, setShowConfirmRegisterPassword] = useState(false) // Обработчик входа -const handleLogin = async (e: React.FormEvent) => { - e.preventDefault(); + const handleLogin = async (e: React.FormEvent) => { + e.preventDefault(); - console.log('Перед отправкой:', { email, password }); + console.log('Перед отправкой:', { email, password }); - try { - const response = await connect.post('/auth/api/login', { - email, - password, - rememberMe, - }); - if (response.status === 200 || response.status === 204 || response.status === 201) { - // Предположим, что сервер возвращает данные с токеном - const data = response.data; + try { + const response = await connect.post('/auth/api/login', { + email, + password, + rememberMe, + }); + if (response.status === 200 || response.status === 204 || response.status === 201) { + // Предположим, что сервер возвращает данные с токеном + const data = response.data; - // Сохраняем данные в localStorage - localStorage.setItem('authToken', data.token); - localStorage.setItem('userEmail', data.user_email); - localStorage.setItem('userId', String(data.user_id)); - - // Можно сохранить флаг входа - localStorage.setItem('isLoggedIn', 'true'); + // Сохраняем данные в localStorage + localStorage.setItem('authToken', data.token); + localStorage.setItem('userEmail', data.user_email); + localStorage.setItem('userId', String(data.user_id)); - // Перенаправляем пользователя - history.push("/home"); - } else { - console.log('Ответ:', response); - } - } catch (error) { - if (axios.isAxiosError(error)) { - console.error('Ошибка при входе:', error.message); - if (error.response) { - console.error('Статус:', error.response.status); - console.error('Данные ответа:', error.response.data); - if (error.response.status === 400) { - alert('Неверные данные для входа'); - } + // Можно сохранить флаг входа + localStorage.setItem('isLoggedIn', 'true'); + + // Перенаправляем пользователя + history.push("/home"); + } else { + console.log('Ответ:', response); } - } else { - console.error('Неожиданная ошибка:', error); + } catch (error) { + if (axios.isAxiosError(error)) { + console.error('Ошибка при входе:', error.message); + if (error.response) { + console.error('Статус:', error.response.status); + console.error('Данные ответа:', error.response.data); + if (error.response.status === 400) { + alert('Неверные данные для входа'); + } + } + } else { + console.error('Неожиданная ошибка:', error); + } + alert('Ошибка при входе'); + } + }; + + + + // Обработчик регистрации + const handleRegisterSubmit = async (e: React.FormEvent) => { + e.preventDefault() + if (registerFormData.password !== registerFormData.confirmPassword) { + alert("Пароли не совпадают") + return + } + try { + const response = await connect.post('/auth/api/register', { + email: registerFormData.email, + name: registerFormData.email, + password: registerFormData.password, + }) + + // Предположим, что ответ содержит объект с токеном и другой информацией + const data = response.data + + // Сохраняем нужные данные в localStorage + localStorage.setItem('authToken', data.token) + localStorage.setItem('userEmail', data.user_email) + localStorage.setItem('userId', String(data.user_id)) + localStorage.setItem('userName', data.user_name) + + console.log('Данные сохранены в localStorage') + alert('Вы успешно зерегистрировались!') + console.log('Отправляемые данные:', { email, password }); + + // После этого можно перейти или показать сообщение + history.push("/home") + } catch (error) { + console.error('Ошибка при регистрации:', error) + alert('Ошибка при регистрации') } - alert('Ошибка при входе'); } -}; - - -// Обработчик регистрации -const handleRegisterSubmit = async (e: React.FormEvent) => { - e.preventDefault() - if (registerFormData.password !== registerFormData.confirmPassword) { - alert("Пароли не совпадают") - return - } - try { - const response = await connect.post('/auth/api/register', { - email: registerFormData.email, - name: registerFormData.email, - password: registerFormData.password, + const handleRegisterInputChange = (e: React.ChangeEvent) => { + setRegisterFormData({ + ...registerFormData, + [e.target.name]: e.target.value, }) - - // Предположим, что ответ содержит объект с токеном и другой информацией - const data = response.data - - // Сохраняем нужные данные в localStorage - localStorage.setItem('authToken', data.token) - localStorage.setItem('userEmail', data.user_email) - localStorage.setItem('userId', String(data.user_id)) - localStorage.setItem('userName', data.user_name) - - console.log('Данные сохранены в localStorage') - alert('Вы успешно зерегистрировались!') - console.log('Отправляемые данные:', { email, password }); - - // После этого можно перейти или показать сообщение - history.push("/home") - } catch (error) { - console.error('Ошибка при регистрации:', error) - alert('Ошибка при регистрации') } -} - -const handleRegisterInputChange = (e: React.ChangeEvent) => { - setRegisterFormData({ - ...registerFormData, - [e.target.name]: e.target.value, - }) -} @@ -141,22 +141,20 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { @@ -182,16 +180,15 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { /> @@ -218,19 +215,8 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { aria-label={showPassword ? "Hide password" : "Show password"} > {showPassword ? ( - - + + ) : ( ) => { )} -{/* Регистрация */} + {/* Регистрация */} {activeTab === "register" && (

Создайте новый аккаунт

@@ -301,6 +287,8 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { placeholder="Электронная почта" required /> + + {/* Password */}
@@ -325,19 +313,8 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { aria-label={showRegisterPassword ? "Hide password" : "Show password"} > {showRegisterPassword ? ( - - + + ) : ( ) => { aria-label={showConfirmRegisterPassword ? "Hide password" : "Show password"} > {showConfirmRegisterPassword ? ( - - + + ) : (