mhpark / Edu_Tech star
박민혁 박민혁 2024-05-31
240531 박민혁 로그인 안되면 로그인 창으로
@026efaf27c2e79f01aa6e1b29073fa1e79b3cdde
src/pages/main/MainSelect.jsx
--- src/pages/main/MainSelect.jsx
+++ src/pages/main/MainSelect.jsx
@@ -1,9 +1,12 @@
 import React, { useEffect } from "react";
 import "./MainParent.css";
 import { useNavigate } from "react-router-dom";
+import { useCookies } from "react-cookie";
 import axios from "axios";
 
 const MainSelect = () => {
+  const [cookies, setCookie, removeCookie] = useCookies(["loggedIn"]);
+
   const navigate = useNavigate();
   const fetchData = async () => {
     try {
@@ -26,8 +29,12 @@
     }
   };
   useEffect(() => {
-    fetchData();
-  }, []);
+    if (!cookies.loggedIn) {
+      navigate("/login");
+    } else {
+      fetchData();
+    }
+  }, [cookies.loggedIn]);
 
   return <div>loading...</div>;
 };
src/pages/main/mainp.jsx
--- src/pages/main/mainp.jsx
+++ src/pages/main/mainp.jsx
@@ -10,6 +10,7 @@
   const [cookies, setCookie, removeCookie] = useCookies(["loggedIn"]);
   const navigate = useNavigate();
   const [currentStep, setCurrentStep] = useState(1);
+
   const [abilities, setAbilities] = useState([
     { name: "어휘", level: 50 },
     { name: "문장", level: 50 },
@@ -40,12 +41,14 @@
   };
   
   const fetchData = async () => {
+    
     try {
       const response = await axios.get(`http://165.229.169.127:8080/rating`, {
         withCredentials: true,
       });
       const responseData = response.data.data; // response.data는 이미 JavaScript 객체로 사용 가능합니다.
       const role = responseData.role;
+
       if (role == "parent") {
         navigate("/mainParent");
       } else {
@@ -62,6 +65,13 @@
   useEffect(() => {
     fetchData();
   }, []);
+
+  useEffect(() => {
+    if (!cookies["loggedIn"]) {
+      navigate("/login");
+    }
+    }, [cookies["loggedIn"]]);
+
   // 사용자 입력을 저장할 state 초기화
   const [comment, setComment] = useState(
     "어서와~ 꿈 속 우주공간은 처음이지? 여행하고 싶은 행성을 골라봐~"
Add a comment
List