diff --git a/SerpentRace_Frontend/src/api/userApi.js b/SerpentRace_Frontend/src/api/userApi.js index e33b32ba..7b4dc6e7 100644 --- a/SerpentRace_Frontend/src/api/userApi.js +++ b/SerpentRace_Frontend/src/api/userApi.js @@ -20,7 +20,7 @@ export const apiClient = axios.create({ export const login = async (username, password) => { try { const response = await apiClient.post("/users/login", { username, password }) - return response.data + return response } catch (error) { throw error } @@ -30,7 +30,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 } catch (error) { throw error } diff --git a/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx b/SerpentRace_Frontend/src/pages/Auth/LoginForm.jsx index f06de31c..6aa74060 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,40 @@ 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) => { + console.log(response) + // Csak a response.status-t ellenőrizd! + if (response && response.status === 200) { + if (response.data && response.data.user) { + localStorage.setItem("username", response.data.user.username) + localStorage.setItem("authLevel", response.data.user.authLevel) + } + navigate("/home") + } else { + setError("Hibás bejelentkezési adatok.") + setShowErrorPopup(true) + setTimeout(() => setShowErrorPopup(false), 2000) + } }) .catch((error) => { setError("Hibás bejelentkezési adatok.") + setShowErrorPopup(true) + setTimeout(() => setShowErrorPopup(false), 2000) }) } @@ -62,7 +82,11 @@ export default function LoginForm() { Sikeres regisztráció! Az email ellenőrzése után be tudsz lépni. )} - {error &&