Cookie: Terkadang bentuk jamak Cookies juga digunakan. Jenisnya adalah "file teks kecil", yaitu data (biasanya dienkripsi) yang disimpan di terminal lokal pengguna oleh beberapa situs web untuk mengidentifikasi identitas pengguna dan melakukan pelacakan sesi. Informasi tersebut disimpan sementara atau permanen oleh komputer klien pengguna.
Untuk mengoperasikan cookie dengan node, kita memerlukan modul cookie-parser
npm dan pengurai cookie -s.
Selanjutnya, perkenalkan modul ini di file kita
//Perkenalkan modul ekspres const express = require('express') // Buat instance ekspres aplikasi const = ekspres() //Modul operasi cookie const cookieParser = require('cookie-parser'); //Tambahkan tanda tangan cookie app.use(cookieParser('Benar-benar keterlaluan')); //Gunakan middleware cookie, nilai terenkripsi adalah: 'Sangat keterlaluan'Nama
detail parameter
: Nama yang mengidentifikasi cookie secara unik.
value: Nilai string yang disimpan dalam cookie.
domain: Cookie valid untuk domain tersebut.
path: menunjukkan jalur yang dipengaruhi oleh cookie ini. Browser akan mengirimkan cookie ke jalur yang cocok di domain yang ditentukan berdasarkan konfigurasi ini.
kadaluwarsa: Waktu kedaluwarsa, menunjukkan kapan cookie kedaluwarsa. Jika waktu ini tidak disetel, browser akan menghapus semua cookie saat halaman ditutup, tetapi kami juga dapat mengatur sendiri waktu kedaluwarsanya.
Catatan: Jika waktu yang ditetapkan pada klien dan server tidak konsisten, maka akan terjadi penyimpangan saat menggunakan expired.
max-age: Digunakan untuk memberi tahu browser berapa lama cookie ini akan kedaluwarsa (dalam hitungan detik). Umumnya, max-age memiliki prioritas lebih tinggi daripada expired.
HttpOnly: Memberi tahu browser untuk tidak mengizinkan skrip document.cookie mengubah nilainya. Nilai ini juga tidak terlihat di document.cookie, tetapi cookie ini akan dibawa dalam permintaan http.
Catatan: Meskipun nilai ini tidak disarankan dalam skrip, nilai ini ada dalam bentuk file di direktori instalasi browser. Pengaturan ini biasanya diatur di sisi server.
aman: bendera keamanan. Jika ditentukan, jika aman benar, maka tidak valid di HTTP dan hanya valid di HTTPS. Artinya, cookie yang dibuat hanya dapat diteruskan oleh browser ke server untuk verifikasi sesi di koneksi HTTPS apakah koneksi HTTP tidak meneruskan informasi ini, sehingga umumnya tidak terdengar.
Mengenai masalah pembacaan,
req.cookies: membaca cookie kami yang tidak terenkripsi;
req.signedCookies: membaca cookie terenkripsi kami.
Kasus
app.get('/', (req, res) => { res.cookie('keranjang', { item: [1, 2, 3] }, { maxAge: 10000 * 2, httpOnly: true, ditandatangani: true, path: '/' }); res.cookie('pengguna', 'Zhang San', { httpOnly: benar, jalur: '/pengguna', ditandatangani: benar }) kirim ulang('ok') console.log(req.cookie) console.log(req.signedCookies) })
app.get('/pengguna', (permintaan, res) => { console.log(req.cookie) res.send(req.signedCookies) })
app.get('/news', function (permintaan, res) { res.cookie('Umur', 'Dabai', { maxAge: 10000 * 2, httpOnly: true, ditandatangani: true }) res.cookie('Umur', '0', { maxAge: 0 }); //Hapus cookie res.send('Halo berita nodejs') })
cookie
kami akan dihapus ketika maxAge
adalah 0
.