Performance: Authentication in middleware
MEDIUM IMPACT
This affects the initial page load speed and interaction responsiveness by adding server-side checks before rendering content.
import { NextResponse } from 'next/server'; export function middleware(request) { const token = request.cookies.get('token'); if (!token) { return NextResponse.redirect(new URL('/login', request.url)); } return NextResponse.next(); }
export async function getServerSideProps(context) { const user = await getUserFromSession(context.req); if (!user) { return { redirect: { destination: '/login', permanent: false } }; } return { props: { user } }; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Auth in getServerSideProps | N/A (server-side) | N/A | Blocks initial paint until auth completes | [X] Bad |
| Auth in middleware | N/A (server-side) | N/A | Minimal blocking, early redirect improves paint timing | [OK] Good |