sn: login
This commit is contained in:
+4
-36
@@ -1,50 +1,18 @@
|
||||
/**
|
||||
* ➡️ 경로 : 루트 (/)
|
||||
*
|
||||
*
|
||||
* 📄 Home Page
|
||||
* 홈 페이지 컴포넌트
|
||||
*
|
||||
* - 쿠키 기반 인증 토큰 검증 및 자동 로그인 처리
|
||||
* - 로그인 성공 시 지도 페이지로 리다이렉트
|
||||
* - 개발 환경에서는 루트 진입 시 자동 로그인 후 지도 페이지 이동
|
||||
* - 로그인 실패 시 에러 로깅 및 처리
|
||||
* - 루트 진입 시 지도 페이지(/map)로 리다이렉트
|
||||
* - 인증 토큰 검증 및 로그인 화면 이동은 /map 및 공통 인증 흐름에서 처리
|
||||
* - 사용자 세션 관리 및 초기 라우팅 제어
|
||||
* - Next.js useRouter를 통한 클라이언트 사이드 라우팅
|
||||
*
|
||||
* 🔗 사용 API
|
||||
* - 로그인: POST /api/v1/auth/login (user-service)
|
||||
*/
|
||||
"use client";
|
||||
import { authService } from "@/entities/auth";
|
||||
import { useEffect } from "react";
|
||||
|
||||
const DEV_HOSTNAMES = new Set(["localhost", "127.0.0.1", "con.mind-one.co.kr"]);
|
||||
|
||||
const DEV_LOGIN_PAYLOAD = {
|
||||
userId: process.env.NEXT_PUBLIC_DEV_LOGIN_USER_ID || "CLEANWATER",
|
||||
password: process.env.NEXT_PUBLIC_DEV_LOGIN_PASSWORD || "gktneh12!@",
|
||||
};
|
||||
|
||||
export default function Home() {
|
||||
useEffect(() => {
|
||||
const hostname = window.location.hostname;
|
||||
const isDevHost = DEV_HOSTNAMES.has(hostname);
|
||||
|
||||
if (!isDevHost) {
|
||||
window.location.replace("/map");
|
||||
return;
|
||||
}
|
||||
|
||||
async function doLogin() {
|
||||
try {
|
||||
// 개발 환경에서는 남아 있는 만료/부분 쿠키로 인한 /map <-> / 루프를 막기 위해 항상 토큰을 재발급한다.
|
||||
await authService.login(DEV_LOGIN_PAYLOAD);
|
||||
window.location.replace("/map");
|
||||
} catch (err) {
|
||||
console.error("로그인 실패", err);
|
||||
}
|
||||
}
|
||||
|
||||
void doLogin();
|
||||
window.location.replace("/map");
|
||||
}, []);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
| 파일 | 역할 | 선언/주석 보조 근거 | 행 | 직접 참조 | 상태 |
|
||||
|---|---|---|---:|---:|---|
|
||||
| [layout.tsx](<D:/workspace/IIPBS-FRONTEND/frontend/apps/sn/app/layout.tsx>) | Next 루트 HTML·테마·메타데이터·Provider 진입점 | metadata, RootLayout / ➡️ 경로 : 모든 페이지 | 44 | 0 | 등록/도구 진입 규칙 대상 |
|
||||
| [page.tsx](<D:/workspace/IIPBS-FRONTEND/frontend/apps/sn/app/page.tsx>) | 루트 진입/개발 자동로그인·지도 이동 | DEV_HOSTNAMES, DEV_LOGIN_PAYLOAD, Home / 홈 페이지 컴포넌트 | 51 | 0 | 등록/도구 진입 규칙 대상 |
|
||||
| [page.tsx](<D:/workspace/IIPBS-FRONTEND/frontend/apps/sn/app/page.tsx>) | 루트 진입/지도 이동 | Home / 홈 페이지 컴포넌트 | 18 | 0 | 등록/도구 진입 규칙 대상 |
|
||||
| [providers.tsx](<D:/workspace/IIPBS-FRONTEND/frontend/apps/sn/app/providers.tsx>) | 실제 src/app/providers의 AppProvider 재수출. 현재 layout에서 사용 | | 2 | 1 | 정적 참조 있음 |
|
||||
|
||||
## app/(auth)/auth
|
||||
|
||||
Reference in New Issue
Block a user