Learning
Next.js

Auth & Middleware

Authentication, protected route-ok és middleware használata Next.js App Router-ben.

Next.js – Auth & Middleware

A teljes Next.js jegyzet 10–11. fejezetének összefoglalója.


Authentication vs Authorization

  • Authentication – ki a felhasználó? (azonosítás)
  • Authorization – mit tehet? (jogosultság)

Next.js nem ad kész auth rendszert, de jól működik pl. Auth.js, Clerk, Lucia stb. library‑kkel.


Alap auth flow (összefoglalva)

  1. User bejelentkezik (form → Server Action vagy Route Handler).
  2. Szerver ellenőrzi az adatokat.
  3. Siker esetén session token kerül cookie‑ba.
  4. Következő kéréseknél middleware vagy page ellenőrzi a tokent.

Védett oldalak – page‑szinten

// app/dashboard/page.tsx
import { getSession } from '@/lib/auth';
import { redirect } from 'next/navigation';

export default async function DashboardPage() {
  const session = await getSession();

  if (!session) {
    redirect('/login');
  }

  return <div>Üdv, {session.user.name}!</div>;
}

Egyszerű, de ismétlődhet sok helyen – ezért jön képbe a middleware.


Middleware alapok

middleware.ts a projekt gyökerében; minden kérés előtt lefut a megadott route‑okra.

// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  const token = request.cookies.get('auth-token')?.value;

  const isProtected = request.nextUrl.pathname.startsWith('/dashboard');

  if (isProtected && !token) {
    return NextResponse.redirect(new URL('/login', request.url));
  }

  return NextResponse.next();
}

export const config = {
  matcher: ['/dashboard/:path*', '/admin/:path*'],
};

Figyelem: a middleware jó UX‑et ad (gyors redirect), de nem helyettesíti a szerver oldali ellenőrzést – az érzékeny page‑eken is ellenőrizd a session‑t.


Mire jó még middleware?

  • i18n (nyelv választás URL / header alapján),
  • A/B tesztelés,
  • rate limiting,
  • geolocation‑alapú redirect,
  • egyszerű request logging.

Nem való:

  • nehéz számításokra,
  • klasszikus adatbázis műveletekre (Edge runtime korlátai),
  • komplex business logikára.

Biztonsági megjegyzés (verziók)

2025 elején volt egy middleware‑hez kapcsolódó sérülékenység (CVE‑2025‑29927).

On this page