@hermina.hauck
В Next.js middleware позволяет перехватывать и обрабатывать запросы на сервере перед тем, как они достигают обработчиков страниц или API-роутов. Это полезно для различных задач, таких как аутентификация, ведение логов, изменения response-объектов и других предварительных действий.
Вот основные шаги для работы с middleware в Next.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// middleware.js
import { NextResponse } from 'next/server';
export async function middleware(request) {
// Пример: простой лог
console.log('Запрос:', request.url);
// Пример: перенаправление неавторизованных пользователей
if (request.nextUrl.pathname.startsWith('/dashboard')) {
const isAuthorized = checkAuthorization(request); // Ваша функция проверки авторизации
if (!isAuthorized) {
return NextResponse.redirect(new URL('/login', request.url));
}
}
// Вернуть null или NextResponse.next() для продолжения запроса
return NextResponse.next();
}
function checkAuthorization(request) {
// Логика проверки авторизованности пользователя
return false; // По умолчанию все не авторизованы
}
|
1 2 3 4 5 |
// middleware.js
export const config = {
matcher: ['/dashboard/:path*', '/api/:path*'], // Применять только к определенным маршрутам
};
|
Middleware в Next.js предоставляет расширенные возможности контроля потока запросов, и его использование может значительно улучшить архитектуру вашего приложения.