From ed88e86821f4bad0da368c35c30403512a84739a Mon Sep 17 00:00:00 2001 From: static Date: Sat, 22 Feb 2025 23:09:16 +0900 Subject: [PATCH 1/2] Add: logging for login deny --- src/services/auth.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/auth.js b/src/services/auth.js index b6e15fd2..19563170 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -164,6 +164,8 @@ const sparcsssoCallbackHandler = (req, res) => { } if (state !== stateForCmp) { + logger.info("Login denied: state mismatch"); + const redirectUrl = new URL("/login/fail", redirectOrigin).href; return res.redirect(redirectUrl); } @@ -175,7 +177,9 @@ const sparcsssoCallbackHandler = (req, res) => { tryLogin(req, res, userData, redirectOrigin, redirectPath); } else { // 카이스트 구성원이 아닌 경우, SSO 로그아웃 이후, 로그인 실패 URI 로 이동합니다 - const { sid } = userData; + const { id, sid } = userData; + logger.info(`Login denied: not a KAIST member (uid: ${id}, sid: ${sid})`); + const redirectUrl = new URL("/login/fail", redirectOrigin).href; const ssoLogoutUrl = ssoClient.getLogoutUrl(sid, redirectUrl); res.redirect(ssoLogoutUrl); From 6457b3c01fb19a3323486aeb35e69c92df131448 Mon Sep 17 00:00:00 2001 From: static Date: Sat, 22 Feb 2025 23:17:06 +0900 Subject: [PATCH 2/2] Add: logging ku_std_no and employeeType --- src/services/auth.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/services/auth.js b/src/services/auth.js index 19563170..26c69147 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -21,7 +21,7 @@ const transUserData = (userData) => { const kaistInfo = userData.kaist_info ? JSON.parse(userData.kaist_info) : {}; // info.ku_std_no: 학번 - // info.isEligible: 카이스트 구성원인지 여부. DB에 저장하지 않음. + // info.isEligible: 카이스트 구성원인지 여부 const info = { id: userData.uid, sid: userData.sid, @@ -29,9 +29,10 @@ const transUserData = (userData) => { facebook: userData.facebook_id || "", twitter: userData.twitter_id || "", kaist: kaistInfo?.ku_std_no || "", + kaistType: kaistInfo?.employeeType || "", // DB에 저장하지 않음 sparcs: userData.sparcs_id || "", email: kaistInfo?.mail || userData.email, - isEligible: userPattern.allowedEmployeeTypes.test(kaistInfo?.employeeType), + isEligible: userPattern.allowedEmployeeTypes.test(kaistInfo?.employeeType), // DB에 저장하지 않음 }; return info; }; @@ -177,8 +178,10 @@ const sparcsssoCallbackHandler = (req, res) => { tryLogin(req, res, userData, redirectOrigin, redirectPath); } else { // 카이스트 구성원이 아닌 경우, SSO 로그아웃 이후, 로그인 실패 URI 로 이동합니다 - const { id, sid } = userData; - logger.info(`Login denied: not a KAIST member (uid: ${id}, sid: ${sid})`); + const { id, sid, kaist, kaistType } = userData; + logger.info( + `Login denied: not a KAIST member (uid: ${id}, sid: ${sid}, kaist: ${kaist}, kaistType: ${kaistType})` + ); const redirectUrl = new URL("/login/fail", redirectOrigin).href; const ssoLogoutUrl = ssoClient.getLogoutUrl(sid, redirectUrl);