From a7798feac34d2e1cec283d93e4d530bdf0006e90 Mon Sep 17 00:00:00 2001 From: Kangmin An Date: Fri, 30 Jul 2021 17:50:56 +0900 Subject: [PATCH] =?UTF-8?q?Update:=20=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83?= =?UTF-8?q?=20=EC=9A=94=EC=B2=AD=20=EC=B2=98=EB=A6=AC=20=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "server/API\353\252\205\354\204\270\354\204\234.md" | 8 +++++++- server/src/controllers/userController.js | 8 ++++++++ server/src/routers/globalRouter.js | 2 ++ server/src/routes.js | 2 ++ server/src/views/home.pug | 4 +++- 5 files changed, 22 insertions(+), 2 deletions(-) diff --git "a/server/API\353\252\205\354\204\270\354\204\234.md" "b/server/API\353\252\205\354\204\270\354\204\234.md" index f96034f..7bb5c07 100644 --- "a/server/API\353\252\205\354\204\270\354\204\234.md" +++ "b/server/API\353\252\205\354\204\270\354\204\234.md" @@ -11,6 +11,7 @@ | Data | GET | /data/loccode | 행정 구역 코드 요청 | | Auth | POST | /signup | 회원가입 요청 | | Auth | POST | /login | 로그인 요청 | +| Auth | GET | /logout | 로그아웃 요청 | | Auth | GET | /confirm?... | 메일 인증용 토큰의 유효성 확인 요청 | | User Info | GET | /user-info | 회원 정보 요청 | | User Info | POST | /edit-profile | 회원 정보 수정 요청 | @@ -45,7 +46,7 @@ loc_code : — 도/시군구/읍면동 이름과 코드 —, user_info : — 사용자 정보 —, weather_out : — 실외 날씨 데이터 —, - weather_user : — 실내 날씨 데이터 —, + weather_in : — 실내(사용자 개인) 날씨 데이터 —, error: — 에러 —, } } @@ -180,3 +181,8 @@ : 사용자 정보를 수정하는 "/edit-profile" 에서 처리 2. 서버의 응답 형태와 전달 내용 작성 + +### 2021.07.30 \_ 로그아웃 경로 추가 + +1. 로그아웃 요청 주소 생성 + : 로그아웃 요청 시 클라이언트의 쿠키에 저장된 토큰을 없애도록 처리. diff --git a/server/src/controllers/userController.js b/server/src/controllers/userController.js index 07a6cbb..5149be5 100644 --- a/server/src/controllers/userController.js +++ b/server/src/controllers/userController.js @@ -125,6 +125,14 @@ export const postLogin = async (req, res) => { } }; +// 로그아웃 요청 처리 +export const getLogout = (req, res) => { + res.clearCookie("acs_token").redirect("/api"); + // .redirect( + // `${envs.client.protocol}://${envs.client.host}:${envs.client.port}` + // ); +}; + // 메일로 보낸 토큰의 유효성 검사 및 access 토큰 발행 처리 export const getConfirm = async (req, res) => { const { diff --git a/server/src/routers/globalRouter.js b/server/src/routers/globalRouter.js index 5fcf1c9..1bafdb4 100644 --- a/server/src/routers/globalRouter.js +++ b/server/src/routers/globalRouter.js @@ -9,6 +9,7 @@ import { getUserInfo, postEditProfile, postLogin, + getLogout, postSignup, } from "../controllers/userController"; import { onlyPrivate } from "../middlewares"; @@ -24,6 +25,7 @@ globalRouter.get(routes.editProfile, onlyPrivate, getEditProfile); // Authentication globalRouter.post(routes.signup, postSignup); globalRouter.post(routes.login, postLogin); +globalRouter.get(routes.logout, onlyPrivate, getLogout); globalRouter.get(routes.confirm, getConfirm); // User Info diff --git a/server/src/routes.js b/server/src/routes.js index 781f5a7..d3cb1f0 100644 --- a/server/src/routes.js +++ b/server/src/routes.js @@ -17,6 +17,7 @@ const LOCCODE = "/loccode"; // # Auth const SIGNUP = "/signup"; const LOGIN = "/login"; +const LOGOUT = "/logout"; const CONFIRM = "/confirm"; // # User Info @@ -36,6 +37,7 @@ const routes = { locCode: LOCCODE, signup: SIGNUP, login: LOGIN, + logout: LOGOUT, confirm: CONFIRM, userinfo: USER_INFO, editProfile: EDIT_PROFILE, diff --git a/server/src/views/home.pug b/server/src/views/home.pug index ab47129..50d8372 100644 --- a/server/src/views/home.pug +++ b/server/src/views/home.pug @@ -9,4 +9,6 @@ block content li a(href=routes.base + routes.login) 로그인 li - a(href=routes.base + routes.editProfile) 회원 정보 변경 \ No newline at end of file + a(href=routes.base + routes.editProfile) 회원 정보 변경 + li + a(href=routes.base + routes.logout) 로그아웃 \ No newline at end of file -- GitLab