คุกกี้: บางครั้งมีการใช้คุกกี้ในรูปแบบพหูพจน์ด้วย ประเภทคือ "ไฟล์ข้อความขนาดเล็ก" ซึ่งเป็นข้อมูล (โดยปกติจะมีการเข้ารหัส) ที่บางเว็บไซต์จัดเก็บไว้ในเทอร์มินัลในพื้นที่ของผู้ใช้ เพื่อระบุตัวตนของผู้ใช้และดำเนินการติดตามเซสชัน ข้อมูลจะถูกบันทึกชั่วคราวหรือถาวรโดยคอมพิวเตอร์ไคลเอนต์ของผู้ใช้
ในการใช้งานคุกกี้กับโหนด เราจำเป็นต้องมีโมดูล cookie-parser
npm i cookie-parser -s
ต่อไป แนะนำโมดูลนี้ในไฟล์ของเรา
// แนะนำโมดูลด่วน const express = need('express') // ยกตัวอย่างด่วน แอป const = ด่วน () //โมดูลคุกกี้การดำเนินการ const cookieParser = need('cookie-parser'); //เพิ่มลายเซ็นคุกกี้ app.use(cookieParser('Really outrageous')); //ใช้มิดเดิลแวร์คุกกี้ ค่าที่เข้ารหัสคือ:ชื่อ
รายละเอียดพารามิเตอร์
'อุกอาจจริงๆ': ชื่อที่ระบุคุกกี้โดยไม่ซ้ำกัน
ค่า: ค่าของสตริงที่เก็บไว้ในคุกกี้
โดเมน: คุกกี้นี้ใช้ได้กับโดเมนนั้น
เส้นทาง: ระบุเส้นทางที่ได้รับผลกระทบจากคุกกี้นี้ เบราว์เซอร์จะส่งคุกกี้ไปยังเส้นทางที่ตรงกันในโดเมนที่ระบุตามการกำหนดค่านี้
หมดอายุ: เวลาหมดอายุ ระบุว่าคุกกี้หมดอายุเมื่อใด หากไม่ได้ตั้งเวลานี้ เบราว์เซอร์จะลบคุกกี้ทั้งหมดเมื่อเพจถูกปิด แต่เราสามารถกำหนดเวลาหมดอายุได้ด้วยตนเอง
หมายเหตุ: หากเวลาที่ตั้งไว้บนไคลเอนต์และเซิร์ฟเวอร์ไม่สอดคล้องกัน จะเกิดความคลาดเคลื่อนเมื่อใช้หมดอายุ
อายุสูงสุด: ใช้เพื่อบอกเบราว์เซอร์ว่าคุกกี้นี้จะหมดอายุนานแค่ไหน (เป็นวินาที) โดยทั่วไป อายุสูงสุดจะมีลำดับความสำคัญสูงกว่าการหมดอายุ
HttpOnly: บอกเบราว์เซอร์ว่าไม่อนุญาตให้สคริปต์ document.cookie เปลี่ยนค่า นอกจากนี้ค่านี้ยังมองไม่เห็นใน document.cookie แต่คุกกี้นี้จะถูกนำไปใช้ในคำขอ http
หมายเหตุ: แม้ว่าจะไม่แนะนำให้ใช้ค่านี้ในสคริปต์ แต่ก็มีอยู่ในรูปแบบของไฟล์ในไดเร็กทอรีการติดตั้งเบราว์เซอร์ โดยทั่วไปการตั้งค่านี้จะถูกตั้งค่าไว้ที่ฝั่งเซิร์ฟเวอร์
ปลอดภัย: แฟล็กความปลอดภัย เมื่อระบุแล้ว เมื่อการรักษาความปลอดภัยเป็นจริง จะไม่ถูกต้องใน HTTP และใช้ได้เฉพาะใน HTTPS เท่านั้น หมายความว่าเบราว์เซอร์สามารถส่งผ่านไปยังเซิร์ฟเวอร์เพื่อการตรวจสอบเซสชันในการเชื่อมต่อ HTTPS เท่านั้น คือการเชื่อมต่อ HTTP ไม่ผ่านข้อมูลนี้ ดังนั้นจึงโดยทั่วไปจะไม่ได้ยิน
เกี่ยวกับปัญหาการอ่าน
req.cookies: อ่านคุกกี้ที่ไม่ได้เข้ารหัสของเรา
req.signedCookies: อ่านคุกกี้ที่เข้ารหัสของเรา
กรณี
app.get('/', (req, res) => { res.cookie('cart', { รายการ: [1, 2, 3] }, { maxAge: 10,000 * 2, httpOnly: true, ลงนาม: true, path: '/' }); res.cookie('user', 'Zhang San', { httpOnly: true, path: '/user', signed: true }) res.send('ตกลง') console.log(req.คุกกี้) console.log (req.signedCookies) -
app.get('/user', (req, res) => { console.log(req.คุกกี้) res.send (req.signedCookies) -
app.get('/news', function (req, res) { res.cookie('อายุ', 'Dabai', { maxAge: 10,000 * 2, httpOnly: true, ลงนาม: true }) res.cookie('อายุ', '0', { maxAge: 0 }); //ลบคุกกี้ res.send('สวัสดี nodejs ข่าว') -
cookie
ของเราจะถูกลบเมื่อ maxAge
เป็น 0