From d349d4a327e08c003a37601690cde06ed86c0aab Mon Sep 17 00:00:00 2001 From: shinwokkang <120699742+shinwokkang@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:02:29 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=84=98=EC=96=B4=EA=B0=80=EB=8A=94=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/login/Button.tsx | 9 ++++++++- src/components/pages/LoginPage.tsx | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/login/Button.tsx b/src/components/login/Button.tsx index cb2a6a7..d8aca06 100644 --- a/src/components/login/Button.tsx +++ b/src/components/login/Button.tsx @@ -1,5 +1,6 @@ /** @jsxImportSource @emotion/react */ import styled from "@emotion/styled"; +import { useNavigate } from "react-router-dom"; const ButtonStyle = styled.button` cursor: pointer; @@ -15,6 +16,12 @@ const ButtonStyle = styled.button` `; const Button = ({ handleLogin }: { handleLogin: () => void }) => { - return 로그인; + const navigate = useNavigate(); + + const onClick = () => { + handleLogin(); + navigate("/home"); // handleLogin 실행 후 네비게이트 + }; + return 로그인; }; export default Button; diff --git a/src/components/pages/LoginPage.tsx b/src/components/pages/LoginPage.tsx index 764f691..e47ddfa 100644 --- a/src/components/pages/LoginPage.tsx +++ b/src/components/pages/LoginPage.tsx @@ -44,6 +44,7 @@ const LoginPage = () => { const [id, setId] = useState(""); const [pw, setPw] = useState(""); const [PwValid, setPwValid] = useState(false); + const navigate = useNavigate(); const handlePw = (e: React.ChangeEvent) => { const value = e.target.value; @@ -54,7 +55,6 @@ const LoginPage = () => { }; const handleLogin = async () => { - const navigate = useNavigate(); if (!PwValid) { alert( "비밀번호는 영문, 숫자, 특수문자를 포함하여 8자 이상이어야 합니다." @@ -67,7 +67,7 @@ const LoginPage = () => { try { const response = await fetch( - "http://13.125.208.182:8080/v1/members/login", + "http://15.164.98.149:8080/v1/members/login", { method: "POST", headers: { "Content-Type": "application/json" }, From 754e839ca31c25bda466cedd02d07c62ff1c3b4f Mon Sep 17 00:00:00 2001 From: shinwokkang <120699742+shinwokkang@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:41:30 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EB=A6=AC=ED=8E=99=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/pages/LoginPage.tsx | 46 ++---------------------------- src/services/handleLogin.ts | 42 +++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 44 deletions(-) create mode 100644 src/services/handleLogin.ts diff --git a/src/components/pages/LoginPage.tsx b/src/components/pages/LoginPage.tsx index e47ddfa..08f50cf 100644 --- a/src/components/pages/LoginPage.tsx +++ b/src/components/pages/LoginPage.tsx @@ -6,6 +6,7 @@ import Input from "../login/Input"; import Button from "../login/Button"; import GotoJoin from "../login/GotoJoin"; import { useNavigate } from "react-router-dom"; +import { handleLogin } from "../../services/handleLogin"; const WrapperStyle = styled.div` display: flex; @@ -54,49 +55,6 @@ const LoginPage = () => { setPwValid(regex.test(value)); }; - const handleLogin = async () => { - if (!PwValid) { - alert( - "비밀번호는 영문, 숫자, 특수문자를 포함하여 8자 이상이어야 합니다." - ); - return; - } - const loginId = id; - const password = pw; - const loginData = { loginId, password }; - - try { - const response = await fetch( - "http://15.164.98.149:8080/v1/members/login", - { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(loginData), - } - ); - - if (response.ok) { - const data = await response.json(); - console.log("로그인 성공:", data); - if (data.accessToken) { - sessionStorage.setItem("accessToken", data.accessToken); - console.log(`Token 저장 : ${data.accessToken}`); - navigate("/home"); - } else { - console.error("서버로부터 AccessToken을 발급받지 못했습니다."); - } - } else { - console.error("로그인 실패"); - alert("로그인에 실패했습니다. 아이디 또는 비밀번호를 확인하세요."); - } - } catch (error) { - console.error("네트워크 에러:", error); - alert("서버에 연결할 수 없습니다. 다시 시도해주세요."); - } - }; - - console.log("로그인 페이지 렌더링"); - return ( <> @@ -109,7 +67,7 @@ const LoginPage = () => { handlePw={handlePw} pwValid={PwValid} /> -