From cf68530fc2e174db3f95364deb01ac586970ed64 Mon Sep 17 00:00:00 2001 From: WalkeU Date: Wed, 15 Oct 2025 16:32:18 +0200 Subject: [PATCH 1/2] loginnal redirect ha jo a return plusz local storageban eltarolom a tokent --- SerpentRace_Frontend/src/api/userApi.js | 4 +- .../src/pages/Auth/LoginForm.jsx | 44 ++++++++++++++++--- .../src/pages/Auth/RegisterForm.jsx | 6 +-- 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/SerpentRace_Frontend/src/api/userApi.js b/SerpentRace_Frontend/src/api/userApi.js index 7a393fdc..599defc5 100644 --- a/SerpentRace_Frontend/src/api/userApi.js +++ b/SerpentRace_Frontend/src/api/userApi.js @@ -48,7 +48,7 @@ apiClient.interceptors.response.use( export const login = async (username, password) => { try { const response = await apiClient.post("/users/login", { username, password }) - return response.data + return response // teljes Axios response visszaadása } catch (error) { throw error } @@ -58,7 +58,7 @@ export const login = async (username, password) => { export const register = async (username, email, password, fname, lname, phone) => { try { const response = await apiClient.post("/users/create", { username, email, password, fname, lname, phone }) - return { ...response.data, status: response.status } + return response // teljes Axios response visszaadása } catch (error) { throw error } diff --git a/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx b/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx index f06de31c..2fd2a6d2 100644 --- a/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx +++ b/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx @@ -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. )} - {error &&
{error}
} + {showErrorPopup && error && ( +
+ {error} +
+ )}
Date: Wed, 15 Oct 2025 17:32:04 +0200 Subject: [PATCH 2/2] elrakja az elrakni valot is --- SerpentRace_Frontend/src/api/userApi.js | 4 ++-- .../src/pages/Auth/LoginForm.jsx | 22 ++++++------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/SerpentRace_Frontend/src/api/userApi.js b/SerpentRace_Frontend/src/api/userApi.js index 599defc5..01920c5a 100644 --- a/SerpentRace_Frontend/src/api/userApi.js +++ b/SerpentRace_Frontend/src/api/userApi.js @@ -48,7 +48,7 @@ apiClient.interceptors.response.use( export const login = async (username, password) => { try { const response = await apiClient.post("/users/login", { username, password }) - return response // teljes Axios response visszaadása + return response } catch (error) { throw error } @@ -58,7 +58,7 @@ export const login = async (username, password) => { export const register = async (username, email, password, fname, lname, phone) => { try { const response = await apiClient.post("/users/create", { username, email, password, fname, lname, phone }) - return response // teljes Axios response visszaadása + return response } catch (error) { throw error } diff --git a/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx b/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx index 2fd2a6d2..6aa74060 100644 --- a/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx +++ b/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx @@ -47,30 +47,22 @@ export default function LoginForm() { // Backend API login(email, password) .then((response) => { + console.log(response) + // Csak a response.status-t ellenőrizd! if (response && response.status === 200) { - // JWT token mentése localStorage-be - if (response.data && response.data.token) { - localStorage.setItem("jwtToken", response.data.token) + if (response.data && response.data.user) { + localStorage.setItem("username", response.data.user.username) + localStorage.setItem("authLevel", response.data.user.authLevel) } navigate("/home") } else { - let msg = "Hibás bejelentkezési adatok." - if (response && response.data && response.data.error) { - msg = response.data.error - } - setError(msg) + setError("Hibás bejelentkezési adatok.") setShowErrorPopup(true) setTimeout(() => setShowErrorPopup(false), 2000) } }) .catch((error) => { - 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) + setError("Hibás bejelentkezési adatok.") setShowErrorPopup(true) setTimeout(() => setShowErrorPopup(false), 2000) }) -- 2.52.0