📜  Express.js req.signedCookies 属性(1)

📅  最后修改于: 2023-12-03 14:41:04.911000             🧑  作者: Mango

Express.js req.signedCookies 属性

在 Express.js 中,req.signedCookies 是一个用于存储已签名的 cookie 对象的属性。签名 cookie 是指在 cookie 中添加签名以验证 cookie 是否未被篡改后再进行发送。

用法

首先,您需要使用 Express.js 中的 cookie-parser 中间件来解析 cookie,在使用之前,您需要向 cookie-parser 传递一个用于签名 cookie 的密钥。这里的密钥可以是任意字符串。

const express = require('express');
const cookieParser = require('cookie-parser');

const app = express();

app.use(cookieParser('your-secret-key-here'));

接下来,使用 res.cookie() 函数来设置已签名的 cookie,这样它将会保存在 req.signedCookies 对象中。

app.get('/', (req, res) => {
  res.cookie('signed-cookie', 'Hello, World!', { signed: true });
  res.send('cookie set');
});

最后,在 Express.js 的路由处理函数中,您可以直接通过 req.signedCookies 属性来访问已经签名的 cookie 对象。

app.get('/', (req, res) => {
  const signedCookieValue = req.signedCookies['signed-cookie'];
  console.log(signedCookieValue);
  res.send('cookie value: ' + signedCookieValue);
});
总结

Express.js req.signedCookies 属性是一个用于存储已签名的 cookie 对象的属性,可以通过设置 signed 参数来设置已签名的 cookie,也可以通过 req.signedCookies 属性来访问已经签名的 cookie 对象。通过使用签名 cookie,我们可以增强 cookie 的安全性,防止 cookie 被恶意篡改的情况。