Ce face cookies() din next/headers - Gestionarea cookie-urilor pe server
Funcția cookies() oferă acces securizat la cookie-urile cererii pe server.
În Server Components, cookie-urile pot fi doar citite (încercarea de a apela `.set()` va genera eroare, deoarece răspunsul HTTP este deja în curs de transmitere).
În Server Actions și Route Handlers, aveți permisiuni complete de citire, modificare și ștergere (`.set()`, `.delete()`), ideale pentru gestionarea sesiunilor de autentificare JWT sau salvarea preferințelor utilizatorului.
Exemple
Exemplul 1: Autentificarea utilizatorului și setarea cookie-ului de sesiune HttpOnly
Setează un cookie de sesiune securizat direct din Server Action.
import { cookies } from 'next/headers';
export async function loginAction(tokenJwt: string) {
'use server';
const cookieStore = await cookies();
cookieStore.set('sesiune_token', tokenJwt, {
httpOnly: True,
secure: process.env.NODE_ENV === 'production',
sameSite: 'lax',
path: '/',
maxAge: 60 * 60 * 24 * 7 // 7 zile
});
}
Ieșire în terminal
Cookie-ul securizat este salvat în browserul clientului.
Greșeli frecvente
- Apelarea ‘cookies()’ transformă automat pagina din statică (○) în dinamică (ƒ), deoarece serverul trebuie să citească antetul Cookie la fiecare cerere.
Comenzi înrudite
headers() din next/headers - Inspectarea antetelor HTTP pe server: Oferă acces de doar-citire la toate antetele HTTP primite de server de la clientul web.Directiva 'use server' - Definirea acțiunilor de server (Server Actions): Permite rularea funcțiilor asincrone direct pe server, apelabile transparent din formulare HTML sau din butoane client fără a scrie manual API Routes.app/api/route.ts - Endpoint-uri API backend (Route Handlers): Creează endpoint-uri REST/HTTP native executate pe server ce răspund la metodele standard GET, POST, PUT, DELETE, PATCH.
Întrebări & Exemple de Cod:
cookies() din next/headers – Gestionarea cookie-urilor pe serverAi o nelămurire despre utilizarea comenzii
cookies() din next/headers – Gestionarea cookie-urilor pe serversau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.