req.signedCookies ใน ExpressJS

ใน ExpressJS, req.signedCookies เป็นคุณสมบัติที่เก็บคุกกี้ที่ลงชื่อใด ๆ ที่ส่งโดยคำขอปัจจุบัน

คุกกี้ที่ลงชื่อคือคุกกี้ที่มีค่าเริ่มต้นด้วย s: . ค่าเริ่มต้นนี้ถูกเพิ่มโดย middleware cookie-parser เมื่อคุกกี้ถูกส่งไปยังเซิร์ฟเวอร์

เมื่อใช้ cookie-parser middleware, req.signedCookies จะถูกตั้งค่าเป็นวัตถุ JavaScript ที่มีคุกกี้ที่ลงชื่อทั้งหมดเป็นคีย์-ค่า คู่

ตัวอย่างเช่น หากคุณมีแอปพลิเคชัน ExpressJS ที่ทำงานบน http://localhost:3000/ และผู้ใช้ส่งคำขอไปยัง URL http://localhost:3000/?user=John&age=25 req.signedCookies จะถูกตั้งค่าเป็น:

1
2
3
4
{
user: "John",
age: 25
}

หากต้องการใช้ req.signedCookies ใน ExpressJS คุณสามารถใช้สิ่งนี้ในโค้ดของคุณ:

1
2
3
4
5
6
7
8
9
const app = express();

app.get("/", function(req, res) {
const user = req.signedCookies.user;
const age = req.signedCookies.age;
res.send("The user is: " + user + " and their age is: " + age);
});

app.listen(3000);

เมื่อคุณเรียกใช้โค้ดนี้และเข้าถึง URL http://localhost:3000/?user=John&age=25 คุณจะเห็นข้อความ “The user is: John and their age is: 25” ในคอนโซล

req.signedCookies มีประโยชน์เมื่อคุณต้องการเข้าถึงคุกกี้ที่ลงชื่อใด ๆ ที่ส่งโดยคำขอปัจจุบัน ตัวอย่างเช่น คุณอาจต้องการใช้ req.signedCookies เพื่อตรวจสอบว่าผู้ใช้ที่มีสิทธิ์เข้าถึงทรัพยากรเฉพาะ

req.signedCookies แตกต่างจาก req.cookies ในสองวิธี:

  • req.cookies จะเก็บคุกกี้ทั้งหมดที่ส่งโดยคำขอ current
  • req.signedCookies จะเก็บเฉพาะคุกกี้ที่ลงชื่อเท่านั้น