Koa.js - Cookies
Cookie adalah file / data kecil yang sederhana yang dikirim ke klien dengan permintaan server dan disimpan di sisi klien. Setiap kali pengguna memuat kembali situs web, cookie ini dikirim bersama permintaan. Ini membantu melacak tindakan pengguna. Ada banyak kegunaan HTTP Cookies.
- Manajemen sesi
- Personalisasi (Sistem rekomendasi)
- Pelacakan pengguna
Untuk menggunakan cookie dengan Koa, kami memiliki fungsi: ctx.cookies.set() dan ctx.cookies.get(). Untuk menyetel cookie baru, mari tentukan rute baru di aplikasi Koa kita.
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);
Untuk memeriksa apakah cookie telah disetel atau tidak, cukup buka browser Anda, jalankan konsol, dan masukkan -
console.log(document.cookie);
Ini akan menghasilkan keluaran berikut (Anda mungkin memiliki lebih banyak cookie yang disetel mungkin karena ekstensi di browser Anda).
"foo = bar"
Berikut adalah contoh di atas.
Browser juga mengirimkan kembali cookie setiap kali melakukan kueri ke server. Untuk melihat cookie di server Anda, di konsol server dalam sebuah rute, tambahkan kode berikut ke rute itu.
console.log('Cookies: foo = ', this.cookies.get('foo'));
Lain kali Anda mengirim permintaan ke rute ini, Anda akan mendapatkan keluaran berikut.
Cookies: foo = bar
Menambahkan Cookie dengan Waktu Kedaluwarsa
Anda dapat menambahkan cookie yang kedaluwarsa. Untuk menambahkan cookie yang kedaluwarsa, cukup teruskan objek dengan properti 'expires' yang disetel ke waktu saat Anda ingin kadaluarsa. Sebagai contoh,
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);
Menghapus Cookies yang Ada
Untuk menghapus cookie, cukup setel cookie ke string kosong. Misalnya, jika Anda perlu menghapus cookie bernamafoo, gunakan kode berikut.
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);
Ini akan membatalkan pengaturan cookie tersebut. Perhatikan bahwa Anda harus meninggalkan fileHttpOnly opsi menjadi benar saat tidak menggunakan cookie di kode sisi klien.