Cookie banner per Laravel: guida all'installazione

Una riga nel layout Blade, configurazione nel .env e script dell'applicazione attivati solo dopo il consenso.

Aggiornata il 9 ottobre 2026 3 min di lettura A cura di Cookie Smart
In questa guida
  1. Cosa serve in un'applicazione Laravel
  2. Installazione in tre passi
  3. Attivare i tuoi script solo dopo il consenso
  4. I cookie di Laravel sono tecnici
  5. Il link «Preferenze cookie»
  6. Livewire, Inertia e frontend separati

In breve: in un'applicazione Laravel il cookie banner si aggiunge con una riga nel layout Blade comune a tutte le pagine, come primo elemento del <head>. Non serve un pacchetto Composer: la chiave del sito sta nel file .env, i servizi esterni noti vengono bloccati in automatico e gli script dell'applicazione si attivano dopo il consenso con un attributo.

Cosa serve in un'applicazione Laravel

Le regole sono le stesse di qualsiasi sito (vedi le linee guida del Garante), ma in un'applicazione su misura gli script sono spesso sparsi tra layout, viste e componenti. Il banner deve quindi:

  • caricarsi prima di @vite, Google Tag Manager e qualsiasi altro script;
  • bloccare in automatico i servizi esterni riconosciuti, anche quelli caricati da altri script;
  • offrire un modo semplice per attivare gli script dell'applicazione solo dopo il consenso.

Installazione in tre passi

1. La chiave nel file .env, copiata dal pannello Cookie Smart, nella pagina del sito:

COOKIESMART_SITE_KEY=la-chiave-del-tuo-sito

2. La configurazione in config/services.php:

'cookiesmart' => [
    'key' => env('COOKIESMART_SITE_KEY'),
],

3. Lo script nel layout (ad esempio resources/views/layouts/app.blade.php), come primo elemento del <head>:

<head>
    @if(config('services.cookiesmart.key'))
        <script src="https://cookiesmart.it/api/c/{{ config('services.cookiesmart.key') }}.js"></script>
    @endif
    <meta charset="utf-8">
    @vite(['resources/css/app.css', 'resources/js/app.js'])
    ...

Attivare i tuoi script solo dopo il consenso

Facebook, Hotjar, YouTube, Google Maps e gli altri servizi riconosciuti vengono bloccati in automatico. Per uno script tuo basta indicare la categoria e usare type="text/plain": il browser non lo esegue finché il visitatore non accetta quella categoria.

<script type="text/plain" data-cookiesmart-category="marketing">
    // codice eseguito solo con il consenso al marketing
</script>

<script type="text/plain" data-cookiesmart-category="analytics" src="/js/statistiche.js"></script>

Le categorie sono functional, analytics e marketing. Per gli script esterni il type="text/plain" evita anche che il browser li scarichi prima del consenso.

Nessun pacchetto da installare

Una riga nel layout e il tuo progetto Laravel ha banner conforme, Consent Mode v2 e registro dei consensi.

Prova gratis

Laravel installa due cookie in ogni applicazione web:

CookieA cosa serveConsenso
nome_app_session (es. laravel_session)Sessione dell'utenteNon serve: tecnico
XSRF-TOKENProtezione dei moduli dagli attacchi CSRFNon serve: tecnico

Il nome del cookie di sessione deriva da APP_NAME, o da SESSION_COOKIE se impostato. Entrambi i cookie vanno comunque indicati nell'informativa.

Il visitatore deve poter cambiare idea in ogni momento. Basta un link nel footer del layout:

<a href="#cookiesmart-preferences">Preferenze cookie</a>

Livewire, Inertia e frontend separati

Lo script va caricato una sola volta nel layout principale, quello che contiene il <head>. Nelle applicazioni a pagina singola il banner resta attivo durante la navigazione interna. Se il frontend è un'applicazione separata (ad esempio Vue o React con Laravel come API), lo script va nell'index.html del frontend.

Domande frequenti

Serve un pacchetto Composer?

No: basta lo script nel layout Blade comune a tutte le pagine, con la chiave del sito letta dal file .env.

I cookie di sessione di Laravel richiedono il consenso?

No. Il cookie di sessione e quello per la protezione CSRF (XSRF-TOKEN) sono cookie tecnici, necessari al funzionamento dell'applicazione.

Come blocco uno script mio fino al consenso?

Si marca il tag con type="text/plain" e data-cookiesmart-category con la categoria (functional, analytics o marketing): il banner lo attiva quando il visitatore accetta quella categoria.

Questa guida ha scopo informativo e non sostituisce una consulenza legale. I riferimenti normativi sono aggiornati alla data indicata in alto.