Koa.js - Cookies
Pliki cookie to proste, małe pliki / dane, które są wysyłane do klienta na żądanie serwera i przechowywane po stronie klienta. Za każdym razem, gdy użytkownik ponownie ładuje witrynę, ten plik cookie jest wysyłany z żądaniem. Pomaga to śledzić działania użytkowników. Istnieje wiele zastosowań plików cookie HTTP.
- Zarządzanie sesjami
- Personalizacja (systemy rekomendacji)
- Śledzenie użytkowników
Aby używać plików cookie w Koa, mamy następujące funkcje: ctx.cookies.set() i ctx.cookies.get(). Aby ustawić nowy plik cookie, zdefiniujmy nową trasę w naszej aplikacji 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);
Aby sprawdzić, czy plik cookie jest ustawiony, czy nie, po prostu przejdź do przeglądarki, uruchom konsolę i wprowadź -
console.log(document.cookie);
Spowoduje to wyświetlenie następującego wyniku (może być ustawione więcej plików cookie, być może z powodu rozszerzeń przeglądarki).
"foo = bar"
Oto przykład powyższego.
Przeglądarka odsyła również pliki cookie za każdym razem, gdy wysyła zapytanie do serwera. Aby wyświetlić plik cookie na serwerze, na konsoli serwera w trasie dodaj następujący kod do tej trasy.
console.log('Cookies: foo = ', this.cookies.get('foo'));
Następnym razem, gdy wyślesz żądanie do tej trasy, otrzymasz następujące dane wyjściowe.
Cookies: foo = bar
Dodawanie plików cookie z czasem wygaśnięcia
Możesz dodać pliki cookie, które wygasają. Aby dodać plik cookie, który wygasa, po prostu przekaż obiekt z właściwością „expires” ustawioną na czas, w którym ma wygasnąć. Na przykład,
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);
Usuwanie istniejących plików cookie
Aby usunąć plik cookie, po prostu ustaw plik cookie na pusty ciąg. Na przykład, jeśli chcesz usunąć plik cookie o nazwiefooużyj poniższego kodu.
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);
Spowoduje to usunięcie wspomnianego pliku cookie. Pamiętaj, że powinieneś zostawićHttpOnly opcja ma być prawdziwa, gdy nie używa pliku cookie w kodzie po stronie klienta.