From 7729a09a2eaa9d4007607eeefe824e518ab26a37 Mon Sep 17 00:00:00 2001 From: Chiman2937 Date: Thu, 1 Jan 2026 16:20:18 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20proxy=20->=20middleware=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=8F=99=EC=9E=91=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/middleware.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/middleware.ts diff --git a/src/middleware.ts b/src/middleware.ts new file mode 100644 index 00000000..c62c47a5 --- /dev/null +++ b/src/middleware.ts @@ -0,0 +1,31 @@ +import { NextRequest, NextResponse } from 'next/server'; + +export const middleware = (request: NextRequest) => { + // const accessToken = request.cookies.get('accessToken'); + const refreshToken = request.cookies.get('refreshToken'); + + const protectedPaths = ['/mypage', '/create-group', '/message', '/schedule', '/notification']; + const isProtected = protectedPaths.some((path) => request.nextUrl.pathname.startsWith(path)); + + // 보호되지 않은 경로는 그냥 통과 + if (!isProtected) { + return NextResponse.next(); + } + + console.log(`refreshToken 보유 여부`); + console.log(refreshToken); + + // 둘 다 없으면 로그인 페이지로 redirect + if (!refreshToken) { + const loginUrl = new URL('/login', request.url); + loginUrl.searchParams.set('error', 'unauthorized'); + loginUrl.searchParams.set('path', request.nextUrl.pathname); + return NextResponse.redirect(loginUrl); + } + + return NextResponse.next(); +}; + +export const config = { + matcher: ['/((?!api|_next/static|_next/image|favicon.ico|login|signup).*)'], +};