Performance: Middleware for authentication
Middleware for authentication affects the time before the main content loads by intercepting requests to check user credentials.
export default async function middleware(request, context) { const token = request.headers.get('authorization'); if (!token || !verifyToken(token)) { return new Response('Unauthorized', { status: 401 }); } return context.next(); }
export default async function middleware(request, context) { const user = await fetchUserFromDatabase(request.headers.get('cookie')); if (!user) { return new Response('Unauthorized', { status: 401 }); } return context.next(); }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Database call on every request | 0 (server-side) | 0 | 0 | [X] Bad |
| Token verification without DB call | 0 (server-side) | 0 | 0 | [OK] Good |
context.next() passes control to next middleware or page.context.next() allows access; others are invalid or block.export async function middleware(context) {
if (!context.cookies.get('authToken')) {
return new Response('Unauthorized', { status: 401 });
}
return context.next();
}export async function middleware(context) {
if (!context.cookies.get('authToken')) {
context.next();
}
return new Response('Unauthorized', { status: 401 });
}/dashboard or /settings?context.url.pathname to target specific routes.startsWith matches routes beginning with '/dashboard' or '/settings'.Pass the test and this pattern moves unknown