loginnal redirect ha jo a return plusz local storageban eltarolom a tokent

This commit is contained in:
2025-10-15 16:32:18 +02:00
parent f2b154d491
commit cf68530fc2
3 changed files with 42 additions and 12 deletions
@@ -5,7 +5,7 @@ import InputBox from "../../components/Inputs/InputBox"
import Button from "../../components/Buttons/Button"
import { motion } from "framer-motion"
import { useState, useEffect } from "react"
import { useLocation } from "react-router-dom"
import { useLocation, useNavigate } from "react-router-dom"
import { login } from "../../api/userApi"
export default function LoginForm() {
@@ -13,7 +13,9 @@ export default function LoginForm() {
const [password, setPassword] = useState("")
const [error, setError] = useState("")
const location = useLocation()
const navigate = useNavigate()
const [showSuccess, setShowSuccess] = useState(false)
const [showErrorPopup, setShowErrorPopup] = useState(false)
useEffect(() => {
if (location.state && location.state.success) {
@@ -29,22 +31,48 @@ export default function LoginForm() {
const handleSubmit = (e) => {
e.preventDefault()
setError("")
setShowErrorPopup(false)
if (!email || !password) {
setError("Minden mező kitöltése kötelező.")
setShowErrorPopup(true)
setTimeout(() => setShowErrorPopup(false), 2000)
return
}
if (!validateEmail(email)) {
setError("Hibás email formátum.")
setShowErrorPopup(true)
setTimeout(() => setShowErrorPopup(false), 2000)
return
}
// Backend API
login(email, password)
.then((data) => {
console.log(data)
console.log("Bejelentkezés:", { email, password })
.then((response) => {
if (response && response.status === 200) {
// JWT token mentése localStorage-be
if (response.data && response.data.token) {
localStorage.setItem("jwtToken", response.data.token)
}
navigate("/home")
} else {
let msg = "Hibás bejelentkezési adatok."
if (response && response.data && response.data.error) {
msg = response.data.error
}
setError(msg)
setShowErrorPopup(true)
setTimeout(() => setShowErrorPopup(false), 2000)
}
})
.catch((error) => {
setError("Hibás bejelentkezési adatok.")
let msg = "Hibás bejelentkezési adatok."
if (error && error.response && error.response.data && error.response.data.error) {
msg = error.response.data.error
} else if (error && error.message) {
msg = error.message
}
setError(msg)
setShowErrorPopup(true)
setTimeout(() => setShowErrorPopup(false), 2000)
})
}
@@ -62,7 +90,11 @@ export default function LoginForm() {
Sikeres regisztráció! Az email ellenőrzése után be tudsz lépni.
</div>
)}
{error && <div className="mb-4 text-red-600 text-center font-semibold">{error}</div>}
{showErrorPopup && error && (
<div className="fixed top-6 left-1/2 -translate-x-1/2 bg-red-500 text-white px-6 py-2 rounded shadow-lg z-50 text-center font-semibold transition-opacity duration-300">
{error}
</div>
)}
<form onSubmit={handleSubmit} className="space-y-6">
<InputBox
type="email"
@@ -51,12 +51,10 @@ export default function RegisterForm() {
// Check for 201 Created status
if (response && response.status === 201) {
navigate("/login", { state: { success: true } })
console.log(response)
console.log("Regisztráció:", { username, email, password, firstname, lastname, phone })
} else {
let msg = "Sikertelen regisztráció."
if (response && response.error) {
msg = response.error
if (response && response.data && response.data.error) {
msg = response.data.error
}
setError(msg)
setShowErrorPopup(true)