Сохранение данных в 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",
|
"@ionic/react-router": "^8.6.5",
|
||||||
"@tailwindcss/vite": "^4.1.11",
|
"@tailwindcss/vite": "^4.1.11",
|
||||||
"axios": "^1.11.0",
|
"axios": "^1.11.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
"react": "^19.1.0",
|
"react": "^19.1.0",
|
||||||
"react-dom": "^19.1.0",
|
"react-dom": "^19.1.0",
|
||||||
"react-router-dom": "^5.3.4",
|
"react-router-dom": "^5.3.4",
|
||||||
@ -2930,6 +2931,19 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"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": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.6",
|
"version": "7.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||||
@ -5519,6 +5533,15 @@
|
|||||||
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
|
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
|
||||||
"license": "MIT"
|
"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": {
|
"node_modules/vite": {
|
||||||
"version": "7.0.6",
|
"version": "7.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz",
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
"@ionic/react-router": "^8.6.5",
|
"@ionic/react-router": "^8.6.5",
|
||||||
"@tailwindcss/vite": "^4.1.11",
|
"@tailwindcss/vite": "^4.1.11",
|
||||||
"axios": "^1.11.0",
|
"axios": "^1.11.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
"react": "^19.1.0",
|
"react": "^19.1.0",
|
||||||
"react-dom": "^19.1.0",
|
"react-dom": "^19.1.0",
|
||||||
"react-router-dom": "^5.3.4",
|
"react-router-dom": "^5.3.4",
|
||||||
|
@ -5,40 +5,85 @@ import { useState } from "react"
|
|||||||
import { useHistory } from "react-router-dom"
|
import { useHistory } from "react-router-dom"
|
||||||
import manImage from "../assets/man.svg" // Reverted to original import
|
import manImage from "../assets/man.svg" // Reverted to original import
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default function LoginPage() {
|
export default function LoginPage() {
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
|
// Стейты для формы входа
|
||||||
const [email, setEmail] = useState("")
|
const [email, setEmail] = useState("")
|
||||||
const [password, setPassword] = useState("")
|
const [password, setPassword] = useState("")
|
||||||
const [showPassword, setShowPassword] = useState(false)
|
const [showPassword, setShowPassword] = useState(false)
|
||||||
const [rememberMe, setRememberMe] = useState(false)
|
const [rememberMe, setRememberMe] = useState(false)
|
||||||
const [activeTab, setActiveTab] = useState<"login" | "register">("login")
|
const [activeTab, setActiveTab] = useState<"login" | "register">("login")
|
||||||
|
|
||||||
// State and handlers for the registration form
|
//// Состояние и обработчики регистрационной формы
|
||||||
const [registerFormData, setRegisterFormData] = useState({
|
const [registerFormData, setRegisterFormData] = useState({
|
||||||
email: "", // Removed firstName, lastName
|
email: "", // Removed firstName, lastName
|
||||||
password: "",
|
password: "",
|
||||||
confirmPassword: "",
|
confirmPassword: "",
|
||||||
|
name: "",
|
||||||
})
|
})
|
||||||
const [showRegisterPassword, setShowRegisterPassword] = useState(false)
|
const [showRegisterPassword, setShowRegisterPassword] = useState(false)
|
||||||
const [showConfirmRegisterPassword, setShowConfirmRegisterPassword] = useState(false)
|
const [showConfirmRegisterPassword, setShowConfirmRegisterPassword] = useState(false)
|
||||||
|
|
||||||
const handleLogin = (e: React.FormEvent) => {
|
|
||||||
|
// Обработчик входа
|
||||||
|
const handleLogin = async (e: React.FormEvent) => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
// Simulate login
|
try {
|
||||||
console.log("Logging in with:", { email, password, rememberMe })
|
const response = await axios.post('http://localhost:8093/auth/api/login', {
|
||||||
history.push("/home")
|
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) {
|
const handleRegisterSubmit = async (e: React.FormEvent) => {
|
||||||
alert("Пароли не совпадают")
|
e.preventDefault()
|
||||||
return
|
if (registerFormData.password !== registerFormData.confirmPassword) {
|
||||||
}
|
alert("Пароли не совпадают")
|
||||||
// Simulate registration
|
return
|
||||||
console.log("Registering with:", registerFormData)
|
|
||||||
history.push("/home")
|
|
||||||
}
|
}
|
||||||
|
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>) => {
|
const handleRegisterInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
setRegisterFormData({
|
setRegisterFormData({
|
||||||
@ -47,6 +92,12 @@ export default function LoginPage() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] flex items-center justify-center p-4">
|
<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>
|
<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