From b76704076091ccb2760e8ce706b8a0c4486ff1df Mon Sep 17 00:00:00 2001 From: ajnart Date: Sat, 11 Feb 2023 20:47:52 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Improve=20middleware=20per?= =?UTF-8?q?formance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit also aims to fix a bug when the password cookie is undefined --- src/middleware.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/middleware.ts b/src/middleware.ts index 7bcfe2611..79f85b693 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -3,9 +3,13 @@ import { NextFetchEvent, NextRequest, NextResponse } from 'next/server'; // eslint-disable-next-line consistent-return export function middleware(req: NextRequest, ev: NextFetchEvent) { const { cookies } = req; - const passwordCookie = cookies.get('password')?.value; - const isCorrectPassword = passwordCookie?.toString() === process.env.PASSWORD; + // Don't even bother with the middleware if there is no defined password + if (!process.env.PASSWORD) return NextResponse.next(); + const url = req.nextUrl.clone(); + const passwordCookie = cookies.get('password')?.value; + + const isCorrectPassword = passwordCookie?.toString() === process.env.PASSWORD; // Skip the middleware if the URL is 'login', 'api/configs/tryPassword', '_next/*', 'favicon.ico', '404', 'migrate' or 'pages/_app' const skippedUrls = [ '/login',