From 8ebcf61707157b9f47c0cf94be9de9f70a07ca36 Mon Sep 17 00:00:00 2001 From: dlsrks1021 Date: Thu, 11 Sep 2025 16:35:59 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/login/TestUserLogin.js | 29 +++++++++++++++++++++++++++++ src/routes/BaseRoutes.js | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 src/pages/login/TestUserLogin.js diff --git a/src/pages/login/TestUserLogin.js b/src/pages/login/TestUserLogin.js new file mode 100644 index 0000000..38d5b12 --- /dev/null +++ b/src/pages/login/TestUserLogin.js @@ -0,0 +1,29 @@ +import { useEffect } from "react"; +import { useNavigate, useParams } from "react-router-dom"; +import axios from "axios"; + +const TestUserLogin = () => { + const navigate = useNavigate(); + const { userId } = useParams(); + + useEffect(() => { + const doLogin = async () => { + try { + await axios.post(`/user/test/login/${userId}`, {}, { skipAuthInterceptor: true }); + navigate("/room", { replace: true }); + } catch (e) { + // 실패 시에도 일단 로그인 화면으로 보냄 + navigate("/login", { replace: true }); + } + }; + if (userId) { + doLogin(); + } + }, [userId, navigate]); + + return null; +}; + +export default TestUserLogin; + + diff --git a/src/routes/BaseRoutes.js b/src/routes/BaseRoutes.js index 8c777d7..8c6a77a 100644 --- a/src/routes/BaseRoutes.js +++ b/src/routes/BaseRoutes.js @@ -16,6 +16,7 @@ import EditQuiz from "../pages/quiz/EditQuiz"; import CreateImageQuiz from "../pages/quiz/CreateImageQuiz"; import AdminLogin from "../pages/login/AdminLogin"; import UserList from "../pages/admin/UserList"; +import TestUserLogin from "../pages/login/TestUserLogin"; const BaseRoutes = () => { return ( @@ -47,6 +48,7 @@ const BaseRoutes = () => { } /> } /> + } /> {/* 에러페이지 */} } />