📜  Express.js res.cookie()函数(1)

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

Express.js res.cookie()函数

在Express.js中,res.cookie()函数可以用于设置cookie。本文将为您介绍res.cookie()函数的用法及参数说明。

什么是Cookie?

Cookie是存储在客户端浏览器上的数据,用于跟踪用户、记录会话信息等。当浏览器向服务器发送请求时,cookie将随着请求发往服务器,服务器可以解析cookie获取相应的信息。

res.cookie()函数的使用方法

res.cookie()函数用于设置cookie,语法为:

res.cookie(name, value [, options])

其中:

  • name:cookie的名称
  • value:cookie的值
  • options:一个可选的对象,用于设置cookie的一些参数
设置cookie的参数

在options对象中,可以设置以下参数:

  • domain:cookie的域名,默认为当前域名
  • expires:cookie的过期时间,可以为Date对象或时间戳
  • httpOnly:只允许通过HTTP或HTTPS访问cookie
  • maxAge:cookie的最长存活时间,为毫秒数
  • path:cookie的路径,默认为'/'
  • sameSite:限制跨站点请求,取值可以为'strict','lax'或'none',默认为'strict'
  • secure:只允许通过HTTPS访问cookie
  • signed:使用签名的cookie,用于防止cookie被篡改
设置cookie的示例

以下示例演示了如何设置cookie:

app.get('/', function(req, res) {
  // 设置名为username,值为john的cookie,过期时间为一小时
  res.cookie('username', 'john', { maxAge: 3600000 });
  res.send('cookie has been set');
});

以上代码将在/路径下设置cookie名为'username',值为'john',过期时间为一小时的cookie。同时,会向客户端浏览器发送一个响应,显示'cookie has been set'。

获取cookie的值

可以通过req.cookies对象获取cookie的值,例如:

app.get('/', function(req, res) {
  var username = req.cookies.username;
  res.send('Hello ' + username);
});

以上代码获取了名为'username'的cookie的值,并向客户端浏览器发送一个响应,显示'Hello john'。

注意事项
  • cookie可以被浏览器禁用或删除,因此不能完全信任cookie的值。
  • 一些浏览器或防火墙可能会拒绝cookie,因此需要在代码中处理这种情况。
  • 需要谨慎处理包含敏感信息的cookie,可以使用加密、签名等方式增强安全性。