使用 res.setheader 在 cookie nodejs 中使用 max-age

问题描述

我正在测试 nodejs..

我正在使用 Express。

我想做一个饼干。

我知道的方式是-

const express =  require("express");
var app =  express();

app.get("/set-cookie",(req,res)=>{
   res.setHeader("set-cookie","value=true");
});

我想使用 res.setHeader() 制作一个 cookie,并将 max-age 设置为 1 分钟添加更多依赖项

我试过了

const express =  require("express");
var app =  express();

app.get("/set-cookie","value=true;MaxAge="1000*60");
});

但它并没有将 max-age 设置为一分钟。

我该怎么办?

解决方法

您可以使用 res.cookie 方法设置 maxAge,以下代码将返回一个 1 分钟后过期的 cookie:

app.get("/set-cookie",(req,res)=>{
    res.cookie('cookieName',"value",{ maxAge: 60*1000 });
    res.send();
});

如果您使用普通的 HTTP header (setHeader),您必须记住:

Max-Age= 可选 cookie 过期前的秒数。零或负数将立即使 cookie 过期。如果同时设置了 Expires 和 Max-Age,则 Max-Age 优先。

所以你的代码应该是这样的:

app.get("/set-cookie",res)=>{
    res.setHeader("Set-Cookie","key=value; Max-Age=60");
    res.send();
});