diff --git a/apps/sn/.env.production b/apps/sn/.env.production
new file mode 100644
index 000000000..fab02e36c
--- /dev/null
+++ b/apps/sn/.env.production
@@ -0,0 +1,12 @@
+NEXT_PUBLIC_SITE_ID = SN
+NEXT_PUBLIC_PORT = 11302
+NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11302
+NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000
+NEXT_PUBLIC_GEOSERVER_URL = http://rsone.iptime.org:10010/geoserver
+NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver #TODO 운영에서 바꿔야 함
+NEXT_PUBLIC_CLAIM_NAME = Authorization
+NEXT_PUBLIC_AUTH_USER_ID = token-id
+NEXT_PUBLIC_ACCESS_TOKEN = access-token
+NEXT_PUBLIC_REFRESH_TOKEN = refresh-token
+
+NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API
diff --git a/apps/sn/app/components/lib/utils/fileDeleteUtil.tsx b/apps/sn/app/components/lib/utils/fileDeleteUtil.tsx
index f487034d1..4cadd12e8 100644
--- a/apps/sn/app/components/lib/utils/fileDeleteUtil.tsx
+++ b/apps/sn/app/components/lib/utils/fileDeleteUtil.tsx
@@ -1,4 +1,4 @@
-import { getCookie } from "@/components/lib/utils";
+import { getCookie } from "@/shared/lib";
import { ENDPOINT } from "../api/attachment/attachment-service";
const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id";
diff --git a/apps/sn/app/components/lib/utils/fileUploadUtil.tsx b/apps/sn/app/components/lib/utils/fileUploadUtil.tsx
index 195a96b0d..3bfb35f00 100644
--- a/apps/sn/app/components/lib/utils/fileUploadUtil.tsx
+++ b/apps/sn/app/components/lib/utils/fileUploadUtil.tsx
@@ -1,5 +1,5 @@
import { Upload, type HttpResponse } from "tus-js-client";
-import { getCookie, setCookie } from "@/components/lib/utils";
+import { getCookie, setCookie } from "@/shared/lib";
import { ENDPOINT } from "../api/attachment/attachment-service";
const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id";
diff --git a/apps/sn/app/components/lib/utils/index.tsx b/apps/sn/app/components/lib/utils/index.tsx
index 9a41c2740..272ca7ada 100644
--- a/apps/sn/app/components/lib/utils/index.tsx
+++ b/apps/sn/app/components/lib/utils/index.tsx
@@ -1,4 +1,3 @@
-export * from "./cookie";
export * from "./fileUploadUtil";
export * from "./fileDownload";
export * from './date'
diff --git a/apps/sn/app/page.tsx b/apps/sn/app/page.tsx
index d19bd5e79..9bfdbb656 100644
--- a/apps/sn/app/page.tsx
+++ b/apps/sn/app/page.tsx
@@ -1,50 +1,29 @@
-import { Button } from "@common/components";
-import Link from "next/link";
-import { redirect } from "next/navigation";
+"use client";
+import { LoginApi } from "@/entities/auth";
+import { useEffect } from "react";
+import { getCookie } from "@/shared/lib";
+import { AUTH_USER_ID } from "@/shared/config";
+import { useRouter } from "next/navigation";
export default function Home() {
- redirect("/map");
+ const router = useRouter();
+ const userId = "admin1gmail";
+ const password = "test1234!";
+ const checkToken = getCookie(AUTH_USER_ID);
- // return (
- //
- //
- //
하수관망도
- //
- //
- //
- //
- //
- //
- //
- //
운영정보 관리
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // I/I 분석(기초정보 설정)
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // );
+ useEffect(() => {
+ if (!checkToken) {
+ async function doLogin() {
+ try {
+ await LoginApi.login({ userId, password });
+ window.location.href = "/map";
+ } catch (err) {
+ console.error("로그인 실패", err);
+ }
+ }
+ doLogin();
+ } else {
+ router.push("/map");
+ }
+ }, []);
}
diff --git a/apps/sn/package.json b/apps/sn/package.json
index 95ec8f3e9..83e13a8ed 100644
--- a/apps/sn/package.json
+++ b/apps/sn/package.json
@@ -5,7 +5,7 @@
"scripts": {
"dev": "next dev -p 3002",
"build": "next build",
- "start": "next start",
+ "start:sn": "next start -p 3002",
"lint": "next lint"
},
"dependencies": {
@@ -18,7 +18,6 @@
"@radix-ui/react-label": "^2.1.2",
"@radix-ui/react-slot": "^1.1.2",
"@tanstack/react-query": "^5.67.1",
- "@tanstack/react-query-devtools": "^5.75.5",
"@tanstack/react-table": "^8.21.2",
"axios": "^1.8.1",
"chart.js": "^4.4.8",
@@ -53,3 +52,6 @@
"typescript": "^5"
}
}
+
+
+
diff --git a/apps/sn/src/entities/auth/lib/auth-wrapper.tsx b/apps/sn/src/entities/auth/lib/auth-wrapper.tsx
index c09ca55c6..f0710e249 100644
--- a/apps/sn/src/entities/auth/lib/auth-wrapper.tsx
+++ b/apps/sn/src/entities/auth/lib/auth-wrapper.tsx
@@ -6,10 +6,8 @@ import { client } from "@/shared/api";
import type { IUserInfo } from "@/shared/store";
import { useUserStore } from "@/shared/lib";
import { ENDPOINT, AUTH_USER_ID } from "@/shared/config";
-import { getCookie } from "@/components/lib/utils";
-import axios from "axios";
+import { getCookie } from "@/shared/lib";
import { LoginApi } from "../api/login-service";
-import { tokenManager } from "../lib/token-manager";
const CLAIM_NAME = process.env.NEXT_PUBLIC_CLAIM_NAME || "Authorization";
@@ -18,32 +16,14 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => {
const { userInfo, setUserInfo } = useUserStore((state) => state);
async function authCheck() {
- const checkToken = getCookie(AUTH_USER_ID);
-
-
- if (!checkToken) {
- //TODO 나중에 수정해야....
- const userId = "admin1gmail";
- const password = "test1234!";
- await LoginApi.login({ userId, password });
- // window.location.href = "http://dev.onasys.co.kr/auth/login";
- // throw new Error("Missing required authentication tokens");
+ const userId = getCookie(AUTH_USER_ID);
+ if (!userId) {
+ throw new Error("Missing required authentication tokens");
}
- const accessToken = tokenManager.getToken(CLAIM_NAME);
- const tokenId = tokenManager.getToken(AUTH_USER_ID);
-
- const response = await axios.get(
+ const response = await client.get(
`${ENDPOINT.USER_SERVICE.USERS}/info/me`,
- {
- withCredentials: true,
- headers: {
- [CLAIM_NAME]: accessToken,
- [AUTH_USER_ID]: tokenId ?? "",
- },
- },
);
-
if (!userInfo) setUserInfo(response.data);
}
@@ -60,12 +40,7 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => {
} catch (refreshError) {
console.error("Token refresh failed:", refreshError);
setUserInfo(null);
-
- // TODO 운영에 반영 할때 수정해야.....
- // 현재 경로가 로그인 페이지가 아닐 때만 redirect
- // if (!pathname.startsWith("/auth/login")) {
- // window.location.href = "http://dev.onasys.co.kr/auth/login";
- // }
+ router.push("/");
}
}
})();
diff --git a/apps/sn/src/entities/auth/lib/token-manager.ts b/apps/sn/src/entities/auth/lib/token-manager.ts
index bf3d68265..6387f06e5 100644
--- a/apps/sn/src/entities/auth/lib/token-manager.ts
+++ b/apps/sn/src/entities/auth/lib/token-manager.ts
@@ -1,5 +1,5 @@
import { AUTH_USER_ID, CLAIM_NAME } from "@/shared/config";
-import { getCookie, setCookie, removeCookie } from "@/components/lib/utils";
+import { getCookie, setCookie, removeCookie } from "@/shared/lib";;
export class TokenManager {
private static instance: TokenManager;
diff --git a/apps/sn/src/entities/menu/lib/menu-wrapper.tsx b/apps/sn/src/entities/menu/lib/menu-wrapper.tsx
index e00d3696e..79a29a09c 100644
--- a/apps/sn/src/entities/menu/lib/menu-wrapper.tsx
+++ b/apps/sn/src/entities/menu/lib/menu-wrapper.tsx
@@ -4,7 +4,7 @@ import { useEffect } from "react";
import { usePathname, useRouter } from "next/navigation";
import { MenuAuthorityApi } from "@/entities/menu-authority/@x/menu";
import { useAlertStore, useMenuStore } from "@/shared/lib";
-import { getCookie } from "@/components/lib/utils";
+import { getCookie } from "@/shared/lib";;
import { SITE_ID } from "@/shared/config";
import { MenuApi } from "../api/menu-service";
import { getCurrentMenu } from "./utils";
diff --git a/apps/sn/src/shared/api/client.ts b/apps/sn/src/shared/api/client.ts
index 709bb44a5..cf37e6671 100644
--- a/apps/sn/src/shared/api/client.ts
+++ b/apps/sn/src/shared/api/client.ts
@@ -1,6 +1,9 @@
import { Client } from "@common/network";
import { BASE_URL } from "../config/api";
import { SITE_ID } from "../config/env";
+import { setCookie } from "../lib";
+
+setCookie("site-id-key", SITE_ID);
export const client = Client.getInstance({
baseURL: BASE_URL,
diff --git a/apps/sn/app/components/lib/utils/cookie.tsx b/apps/sn/src/shared/lib/cookie.ts
similarity index 100%
rename from apps/sn/app/components/lib/utils/cookie.tsx
rename to apps/sn/src/shared/lib/cookie.ts
diff --git a/apps/sn/src/shared/lib/index.ts b/apps/sn/src/shared/lib/index.ts
index bca6d2476..b8b4c52c0 100644
--- a/apps/sn/src/shared/lib/index.ts
+++ b/apps/sn/src/shared/lib/index.ts
@@ -3,3 +3,4 @@ export { useAlertStore } from "./use-alert-store";
export { useMenuStore } from "./use-menu-store";
export { useUserStore } from "./use-user-store";
export { usePrompt } from "./use-prompt";
+export { getCookie, setCookie, removeCookie } from "./cookie";