[feat]: Shadcn UI 모달 Select 레이아웃 시프트 방지 및 코드 정리
주요 변경사항:
- 테마/언어 선택을 모달 스타일로 변경 (native={false})
- LoginPage, SignupPage, DashboardLayout 적용
- CSS 2줄로 레이아웃 시프트 완전 제거
- body { overflow: visible !important }
- body[data-scroll-locked] { margin-right: 0 !important }
- 미사용 business 컴포넌트 대량 삭제 (코드 정리)
- CEODashboard → MainDashboard 이름 변경
- 구현 문서 작성: [IMPL-2025-11-12] modal-select-layout-shift-fix.md
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,32 @@
|
||||
import { NextResponse } from 'next/server';
|
||||
import type { NextRequest } from 'next/server';
|
||||
|
||||
/**
|
||||
* 🔵 Next.js 내부 API - 로그인 프록시 (PHP 백엔드로 전달)
|
||||
*
|
||||
* ⚡ 설계 목적:
|
||||
* - 보안: HttpOnly 쿠키로 토큰 저장 (JavaScript 접근 불가)
|
||||
* - 프록시 패턴: PHP 백엔드 API 호출 후 토큰을 안전하게 쿠키로 설정
|
||||
* - 클라이언트 보호: 토큰을 절대 클라이언트 JavaScript에 노출하지 않음
|
||||
*
|
||||
* 🔄 동작 흐름:
|
||||
* 1. 클라이언트 → Next.js /api/auth/login (user_id, user_pwd)
|
||||
* 2. Next.js → PHP /api/v1/login (인증 요청)
|
||||
* 3. PHP → Next.js (access_token, refresh_token, 사용자 정보)
|
||||
* 4. Next.js: 토큰을 HttpOnly 쿠키로 설정
|
||||
* 5. Next.js → 클라이언트 (토큰 제외한 사용자 정보만 전달)
|
||||
*
|
||||
* 🔐 보안 특징:
|
||||
* - 토큰은 클라이언트에 절대 노출되지 않음
|
||||
* - HttpOnly: XSS 공격 방지
|
||||
* - Secure: HTTPS만 전송
|
||||
* - SameSite=Strict: CSRF 공격 방지
|
||||
*
|
||||
* ⚠️ 주의:
|
||||
* - 이 API는 PHP /api/v1/login의 프록시입니다
|
||||
* - 실제 인증 로직은 PHP 백엔드에서 처리됩니다
|
||||
*/
|
||||
|
||||
/**
|
||||
* 백엔드 API 로그인 응답 타입
|
||||
*/
|
||||
@@ -23,7 +49,7 @@ interface BackendLoginResponse {
|
||||
company_name: string;
|
||||
business_num: string;
|
||||
tenant_st_code: string;
|
||||
other_tenants: any[];
|
||||
other_tenants: unknown[];
|
||||
};
|
||||
menus: Array<{
|
||||
id: number;
|
||||
|
||||
Reference in New Issue
Block a user