45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
/**
|
|
* ➡️ 경로 : 루트 (/)
|
|
*
|
|
* 📄 Home Page
|
|
* 홈 페이지 컴포넌트
|
|
*
|
|
* - 쿠키 기반 인증 토큰 검증 및 자동 로그인 처리
|
|
* - 로그인 성공 시 지도 페이지로 리다이렉트
|
|
* - 기존 토큰 존재 시 바로 지도 페이지 이동
|
|
* - 로그인 실패 시 에러 로깅 및 처리
|
|
* - 사용자 세션 관리 및 초기 라우팅 제어
|
|
* - Next.js useRouter를 통한 클라이언트 사이드 라우팅
|
|
*
|
|
* 🔗 사용 API
|
|
* - 로그인: POST /api/v1/auth/login (user-service)
|
|
*/
|
|
"use client";
|
|
import { LoginApi } from "@/entities/auth";
|
|
import { useEffect } from "react";
|
|
import { getCookie } from "@/shared/lib";
|
|
import { AUTH_USER_ID } from "@/shared/config";
|
|
|
|
export default function Home() {
|
|
const checkToken = getCookie(AUTH_USER_ID);
|
|
|
|
useEffect(() => {
|
|
|
|
const hostname = window.location.hostname;
|
|
|
|
if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") {
|
|
if (!checkToken) {
|
|
async function doLogin() {
|
|
try {
|
|
await LoginApi.login({ userId: "CLEANWATER", password: "gktneh12!@" });
|
|
window.location.href = "/map";
|
|
} catch (err) {
|
|
console.error("로그인 실패", err);
|
|
}
|
|
}
|
|
doLogin();
|
|
} else window.location.href = "/map";
|
|
} else window.location.href = "/map";
|
|
}, []);
|
|
}
|