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.