Сохранение данных в local storage при регистрации
This commit is contained in:
parent
59527b03e7
commit
a5d1c80aaa
23
package-lock.json
generated
23
package-lock.json
generated
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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 })
|
||||
history.push("/home")
|
||||
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) => {
|
||||
e.preventDefault()
|
||||
if (registerFormData.password !== registerFormData.confirmPassword) {
|
||||
alert("Пароли не совпадают")
|
||||
return
|
||||
}
|
||||
// Simulate registration
|
||||
console.log("Registering with:", registerFormData)
|
||||
history.push("/home")
|
||||
|
||||
// Обработчик регистрации
|
||||
const handleRegisterSubmit = async (e: React.FormEvent) => {
|
||||
e.preventDefault()
|
||||
if (registerFormData.password !== registerFormData.confirmPassword) {
|
||||
alert("Пароли не совпадают")
|
||||
return
|
||||
}
|
||||
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>
|
||||
|
@ -1,2 +0,0 @@
|
||||
export const USER_KEY = 'user';
|
||||
export const AUTH_TOKEN = 'token';
|
@ -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`;
|
Loading…
x
Reference in New Issue
Block a user