Core · Cookies

Cookies

Il modulo cookie.js semplifica la gestione dei cookie HTTP in LizardJS. Puoi crearli, leggerli e rimuoverli direttamente dalle richieste e risposte del server.

📦 Importazione

Dal tuo app.js, importa le funzioni del modulo:

app.js
import {
    setCookie,
    getCookie,
    deleteCookie
} from "./lizardjs/cookie.js";

setCookie()

setCookie(response, name, value, options)

Aggiunge un cookie alla risposta HTTP utilizzando l'header Set-Cookie.

Esempio

app.js
setCookie(
    response,
    "session",
    "abc123",
    {
        httpOnly: true,
        secure: true,
        sameSite: "strict",
        maxAge: 3600
    }
);

Parametri

response L'oggetto response HTTP su cui impostare il cookie.
name Il nome del cookie.
value Il valore del cookie.
options Opzioni aggiuntive del cookie.

Opzioni

maxAge Durata del cookie in secondi.
domain Dominio a cui appartiene il cookie.
path Percorso per cui il cookie è valido.
expires Data di scadenza del cookie.
httpOnly Aggiunge il flag HttpOnly.
secure Aggiunge il flag Secure.
sameSite Imposta il valore SameSite.

getCookie()

getCookie(request, name)

Legge un cookie ricevuto dal client attraverso l'header HTTP Cookie.

Se il cookie esiste, la funzione restituisce il suo valore. Se non viene trovato, restituisce undefined.

Esempio

app.js
let session = getCookie(
    request,
    "session"
);

console.log(session);

Se il client ha inviato:

HTTP Header
Cookie: session=abc123

il risultato sarà:

Output
abc123

deleteCookie()

deleteCookie(response, name, options)

Elimina un cookie inviando al client una risposta con una scadenza nel passato e Max-Age=0.

Esempio

app.js
deleteCookie(
    response,
    "session",
    {
        path: "/"
    }
);

È importante utilizzare gli stessi attributi rilevanti utilizzati quando il cookie è stato creato, in particolare path e domain, quando applicabili.

Esempio completo

Un esempio di gestione di una sessione tramite cookie:

app.js
import {
    setCookie,
    getCookie,
    deleteCookie
} from "./lizardjs/cookie.js";

// Creazione
setCookie(
    response,
    "session",
    "abc123",
    {
        httpOnly: true,
        secure: true,
        sameSite: "strict",
        maxAge: 3600,
        path: "/"
    }
);

// Lettura
let session = getCookie(
    request,
    "session"
);

// Eliminazione
deleteCookie(
    response,
    "session",
    {
        path: "/"
    }
);
⚠️ Nota sulla sicurezza

Non inserire informazioni sensibili direttamente nei cookie senza aver valutato attentamente autenticazione, sicurezza e validazione lato server.

Riepilogo

setCookie() Crea o aggiorna un cookie nella risposta.
getCookie() Legge un cookie dalla richiesta.
deleteCookie() Elimina un cookie tramite la risposta.