Koa.js - Cookie

I cookie sono semplici file / dati di piccole dimensioni che vengono inviati al client con una richiesta del server e memorizzati sul lato client. Ogni volta che l'utente carica nuovamente il sito web, questo cookie viene inviato con la richiesta. Questo aiuta a tenere traccia delle azioni degli utenti. Esistono numerosi utilizzi dei cookie HTTP.

  • Gestione delle sessioni
  • Personalizzazione (sistemi di raccomandazione)
  • Tracciamento dell'utente

Per utilizzare i cookie con Koa, abbiamo le funzioni: ctx.cookies.set() e ctx.cookies.get(). Per impostare un nuovo cookie, definiamo un nuovo percorso nella nostra app Koa.

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie() {
   this.cookies.set('foo', 'bar', {httpOnly: false});
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Per verificare se il cookie è impostato o meno, vai sul tuo browser, avvia la console e inserisci -

console.log(document.cookie);

Questo produrrà il seguente output (potresti avere più cookie impostati forse a causa delle estensioni nel tuo browser).

"foo = bar"

Ecco un esempio di quanto sopra.

Il browser restituisce inoltre i cookie ogni volta che interroga il server. Per visualizzare un cookie sul tuo server, sulla console del server in una route, aggiungi il seguente codice a quella route.

console.log('Cookies: foo = ', this.cookies.get('foo'));

La prossima volta che invii una richiesta a questa route, otterrai il seguente output.

Cookies: foo = bar

Aggiunta di cookie con tempo di scadenza

Puoi aggiungere cookie che scadono. Per aggiungere un cookie che scade, è sufficiente passare un oggetto con la proprietà 'expires' impostata sull'ora in cui si desidera che scada. Per esempio,

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
	this.cookies.set('name', 'value', { 
      httpOnly: false, expires: 360000 + Date.now() });
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Eliminazione dei cookie esistenti

Per annullare l'impostazione di un cookie, è sufficiente impostare il cookie su una stringa vuota. Ad esempio, se è necessario cancellare un cookie denominatofoo, usa il codice seguente.

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
   this.cookies.set('name', '');
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Questo disattiverà il suddetto cookie. Nota che dovresti lasciare il fileHttpOnly opzione per essere vera quando non si utilizza il cookie nel codice lato client.