Сохранение данных в local storage при регистрации

This commit is contained in:
Tatyana 2025-08-15 14:55:11 +03:00
parent 59527b03e7
commit a5d1c80aaa
5 changed files with 89 additions and 36 deletions

23
package-lock.json generated
View File

@ -14,6 +14,7 @@
"@ionic/react-router": "^8.6.5",
"@tailwindcss/vite": "^4.1.11",
"axios": "^1.11.0",
"cors": "^2.8.5",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^5.3.4",
@ -2930,6 +2931,19 @@
"dev": true,
"license": "MIT"
},
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"license": "MIT",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@ -5519,6 +5533,15 @@
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
"license": "MIT"
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/vite": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz",

View File

@ -16,6 +16,7 @@
"@ionic/react-router": "^8.6.5",
"@tailwindcss/vite": "^4.1.11",
"axios": "^1.11.0",
"cors": "^2.8.5",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^5.3.4",

View File

@ -5,40 +5,85 @@ import { useState } from "react"
import { useHistory } from "react-router-dom"
import manImage from "../assets/man.svg" // Reverted to original import
import axios from 'axios';
export default function LoginPage() {
const history = useHistory()
// Стейты для формы входа
const [email, setEmail] = useState("")
const [password, setPassword] = useState("")
const [showPassword, setShowPassword] = useState(false)
const [rememberMe, setRememberMe] = useState(false)
const [activeTab, setActiveTab] = useState<"login" | "register">("login")
// State and handlers for the registration form
//// Состояние и обработчики регистрационной формы
const [registerFormData, setRegisterFormData] = useState({
email: "", // Removed firstName, lastName
password: "",
confirmPassword: "",
name: "",
})
const [showRegisterPassword, setShowRegisterPassword] = useState(false)
const [showConfirmRegisterPassword, setShowConfirmRegisterPassword] = useState(false)
const handleLogin = (e: React.FormEvent) => {
// Обработчик входа
const handleLogin = async (e: React.FormEvent) => {
e.preventDefault()
// Simulate login
console.log("Logging in with:", { email, password, rememberMe })
try {
const response = await axios.post('http://localhost:8093/auth/api/login', {
email,
password,
rememberMe,
})
console.log('Ответ сервера:', response.data)
// например, сохранить токен или перейти
history.push("/home")
} catch (error) {
console.error('Ошибка при входе:', error)
alert('Ошибка при входе')
}
}
const handleRegisterSubmit = (e: React.FormEvent) => {
// Обработчик регистрации
const handleRegisterSubmit = async (e: React.FormEvent) => {
e.preventDefault()
if (registerFormData.password !== registerFormData.confirmPassword) {
alert("Пароли не совпадают")
return
}
// Simulate registration
console.log("Registering with:", registerFormData)
try {
const response = await axios.post('http://localhost:8093/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')
// После этого можно перейти или показать сообщение
history.push("/home")
} catch (error) {
console.error('Ошибка при регистрации:', error)
alert('Ошибка при регистрации')
}
}
const handleRegisterInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
setRegisterFormData({
@ -47,6 +92,12 @@ export default function LoginPage() {
})
}
return (
<div className="min-h-screen bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] flex items-center justify-center p-4">
<div className="bg-white h-[58%] w-full z-0 absolute bottom-0"></div>

View File

@ -1,2 +0,0 @@
export const USER_KEY = 'user';
export const AUTH_TOKEN = 'token';

View File

@ -1,20 +0,0 @@
export const getRouteLogin = () => `/auth/login`;
export const getRouteRegister = () => `/auth/register`;
export const getRouteResetPassword = () => `/auth/reset-password`;
export const getRouteLkHome = () => `/lk`;
export const getRouteUsersList = () => `/lk/admin/users`;
export const getRouteUserEdit = (id: number | string) => `/lk/admin/users/${id}`;
export const getRouteUserCreate = () => `/lk/admin/users/create`;
export const getRouteUserRolesList = () => `/lk/admin/user-roles`;
export const getRouteUserRoleEdit = (id: number | string) => `/lk/admin/user-roles/${id}`;
export const getRouteUserRoleCreate = () => `/lk/admin/user-roles/create`;
export const getRouterExercisesList = () =>`/lk/admin/exercises`;
export const getRouterExercisesEdit = (id: number | string) =>`/lk/admin/exercises/${id}`;
export const getRouterExercisesCreate = () =>`/lk/admin/exercises/create`;
export const getRouterCoursesList = () => `/lk/admin/courses`;
export const getRouterCoursesEdit = (id: number | string) => `/lk/admin/courses/${id}`;
export const getRouterCoursesCreate = () => `/lk/admin/courses/create`;