송용우 5 місяців тому
батько
коміт
7dcc37415d

+ 3 - 0
components/common/header.vue

@@ -123,12 +123,15 @@
       SEQ: useStoreAuth.getSnsTempData.user.SEQ,
       GOOGLE_REFRESH_TOKEN: useStoreAuth.getSnsTempData.user.GOOGLE_REFRESH_TOKEN,
       KAKAO_REFRESH_TOKEN: useStoreAuth.getSnsTempData.user.KAKAO_REFRESH_TOKEN,
+      NAVER_REFRESH_TOKEN: useStoreAuth.getSnsTempData.user.NAVER_REFRESH_TOKEN,
     };
 
     let _uri = useStoreAuth.getSnsTempData.user.GOOGLE_REFRESH_TOKEN
       ? "/auth/withdrawal"
       : useStoreAuth.getSnsTempData.user.KAKAO_REFRESH_TOKEN
       ? "/auth/kakaowithdrawal"
+      : useStoreAuth.getSnsTempData.user.NAVER_REFRESH_TOKEN
+      ? "/auth/naverwithdrawal"
       : "/auth/withdrawal";
 
     useAxios()

+ 2 - 3
middleware/auth.global.js

@@ -6,8 +6,7 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
   const tokenPassPages = [
     '/', 
     '/roulette',    
-    '/auth/popupClose',    
-    '/auth/join'
+    '/auth'    
   ]
   //let accountValue = useAuthStore().getAccountRole.charAt(0).toUpperCase()
 
@@ -22,7 +21,7 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
   }
 
   // 2. 토큰 체크 (모든 페이지)
-  if (!tokenPassPages.includes(to.path)) {
+  if (!tokenPassPages.includes(to.path) && !tokenPassPages.some(path => path !== '/' && to.path.startsWith(path + '/'))) {
     const accessToken = useAuthStore().getAccessToken
     if (!accessToken || accessToken === '' || typeof accessToken !== 'string') {
       $log.error('[ 페이지 접근 불가] 인증되지 않은 사용자입니다.')

+ 2 - 2
pages/auth/popupClose.vue

@@ -13,7 +13,7 @@
         {
           user,
         },
-        "http://0.0.0.0:3000"
+        "https://shopdeli.mycafe24.com"
       );
 
       window.close();
@@ -24,7 +24,7 @@
           refreshToken,
           user,
         },
-        "http://0.0.0.0:3000"
+        "https://shopdeli.mycafe24.com"
       );
 
       window.close();

+ 36 - 3
pages/index.vue

@@ -80,7 +80,7 @@
         <div class="short--login--wrap">
           <v-btn class="btn--google" @click.stop="onGoogleLogin"></v-btn>
           <v-btn class="btn--kakao" @click.stop="onKakaoLogin"></v-btn>
-          <v-btn class="btn--naver"></v-btn>
+          <v-btn class="btn--naver" @click.stop="onNaverLogin"></v-btn>
         </div>
       </div>
     </div>
@@ -347,7 +347,8 @@
       // 개발환경이면 아래처럼 확인
       if (
         event.origin === "http://0.0.0.0:3000" || //배포시 도메인 변경
-        event.origin === "http://localhost:3000" //배포시 도메인 변경
+        event.origin === "http://localhost:3000" || //배포시 도메인 변경
+        event.origin === "https://shopdeli.mycafe24.com"
       ) {
         const { accessToken, refreshToken, user } = event.data;
 
@@ -369,7 +370,7 @@
           useAuthStore().setTempData(result);
           useAuthStore().setAccessToken(accessToken);
           useAuthStore().setRefreshToken(refreshToken);
-          localStorage.setItem("tempAccess", result.user.NICK_NAME);
+          localStorage.setItem("tempAccess", result.user);
           useUtil.setPageMove("/view/item");
           useStore.menuInfo.menuIndex = "0";
           useStore.menuInfo.menuId = "menu02";
@@ -507,6 +508,38 @@
     );
   }
 
+  function onNaverLogin() {
+    const naverAuthUrl = "https://shopdeli.mycafe24.com/auth/naverLogin"; // 실제 리디렉션 URI로 교체
+
+    const width = 500;
+    const height = 600;
+    const dualScreenLeft =
+      window.screenLeft !== undefined ? window.screenLeft : window.screenX;
+    const dualScreenTop =
+      window.screenTop !== undefined ? window.screenTop : window.screenY;
+
+    const currentWidth = window.innerWidth
+      ? window.innerWidth
+      : document.documentElement.clientWidth
+      ? document.documentElement.clientWidth
+      : screen.width;
+
+    const currentHeight = window.innerHeight
+      ? window.innerHeight
+      : document.documentElement.clientHeight
+      ? document.documentElement.clientHeight
+      : screen.height;
+
+    const left = dualScreenLeft + (currentWidth - width) / 2;
+    const top = dualScreenTop + (currentHeight - height) / 2;
+
+    window.open(
+      naverAuthUrl,
+      "naverLogin",
+      `width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes`
+    );
+  }
+
   /**
    * @API
    * 최종 로그인 버튼 클릭 시 API