From f2bdc5708fa40bbd40abfe374e73f50fb4d6dc74 Mon Sep 17 00:00:00 2001 From: plla2 Date: Wed, 23 Apr 2025 14:08:07 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EC=84=A4=EB=AC=B8=20=EC=9D=91=EB=8B=B5?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=AF=B8=EB=93=A4=EC=9B=A8?= =?UTF-8?q?=EC=96=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/middleware.ts | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/middleware.ts b/src/middleware.ts index ba95c1bb..06e22a03 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -8,29 +8,34 @@ export const config = { ], }; -const publicRoutes = [ - AUTH_LINKS.signup, - AUTH_LINKS.login, - ROUTES.SURVEY.TAKE, - ROUTES.LANDING, -]; +const publicRoutes = [AUTH_LINKS.signup, AUTH_LINKS.login, ROUTES.LANDING]; + const publicRoutePatterns = [/^\/survey\/take\/[^/]+$/]; export function middleware(request: NextRequest) { const isLogin = request.cookies.get('isLogin'); const currentPath = request.nextUrl.pathname; - const isPublicRoute = - publicRoutes.includes(currentPath) || - publicRoutePatterns.some((pattern) => pattern.test(currentPath)); + const isPublicRoute = publicRoutes.includes(currentPath); - if (!isLogin && !isPublicRoute) { + if ( + !isLogin && + !isPublicRoute && + !publicRoutePatterns.some((pattern) => pattern.test(currentPath)) + ) { const url = request.nextUrl.clone(); url.pathname = AUTH_LINKS.login; return NextResponse.redirect(url); } - if (isLogin && publicRoutes.includes(currentPath)) { + if ( + !isLogin && + publicRoutePatterns.some((pattern) => pattern.test(currentPath)) + ) { + return NextResponse.next(); + } + + if (isLogin && isPublicRoute) { const url = request.nextUrl.clone(); url.pathname = NAV_LINKS[0].href; return NextResponse.redirect(url);