Koa.js - Cookies
Cookies sind einfache, kleine Dateien / Daten, die mit einer Serveranforderung an den Client gesendet und auf der Clientseite gespeichert werden. Jedes Mal, wenn der Benutzer die Website zurücklädt, wird dieses Cookie mit der Anfrage gesendet. Dies hilft dabei, die Aktionen des Benutzers zu verfolgen. Es gibt zahlreiche Verwendungen von HTTP-Cookies.
- Sitzungsverwaltung
- Personalisierung (Empfehlungssysteme)
- Benutzerverfolgung
Um Cookies mit Koa zu verwenden, haben wir folgende Funktionen: ctx.cookies.set() und ctx.cookies.get(). Um ein neues Cookie zu setzen, definieren wir eine neue Route in unserer Koa-App.
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);
Um zu überprüfen, ob das Cookie gesetzt ist oder nicht, rufen Sie einfach Ihren Browser auf, starten Sie die Konsole und geben Sie - ein.
console.log(document.cookie);
Dies führt zu der folgenden Ausgabe (möglicherweise werden aufgrund von Erweiterungen in Ihrem Browser weitere Cookies gesetzt).
"foo = bar"
Hier ist ein Beispiel für das Obige.
Der Browser sendet außerdem jedes Mal Cookies zurück, wenn er den Server abfragt. Fügen Sie dieser Route den folgenden Code hinzu, um ein Cookie auf Ihrem Server auf der Serverkonsole in einer Route anzuzeigen.
console.log('Cookies: foo = ', this.cookies.get('foo'));
Wenn Sie das nächste Mal eine Anfrage an diese Route senden, erhalten Sie die folgende Ausgabe.
Cookies: foo = bar
Hinzufügen von Cookies mit Ablaufzeit
Sie können Cookies hinzufügen, die ablaufen. Um ein Cookie hinzuzufügen, das abläuft, übergeben Sie einfach ein Objekt mit der Eigenschaft 'expires' auf den Zeitpunkt, zu dem es ablaufen soll. Zum Beispiel,
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);
Vorhandene Cookies löschen
Um ein Cookie zu deaktivieren, setzen Sie das Cookie einfach auf eine leere Zeichenfolge. Zum Beispiel, wenn Sie ein Cookie mit dem Namen löschen müssenfooVerwenden Sie den folgenden Code.
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);
Dadurch wird das besagte Cookie deaktiviert. Beachten Sie, dass Sie die verlassen solltenHttpOnly Option, um wahr zu sein, wenn das Cookie nicht im clientseitigen Code verwendet wird.