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

标签 node.js express cookies

我正在测试 nodejs..

我正在使用 Express。

我想做一个 cookies 。

我知道的方式是-

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

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

我想使用 res.setHeader() 将 max-age 设置为 1 分钟而不添加更多依赖项/p>

我试过了

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

app.get("/set-cookie",(req,res)=>{
   res.setHeader("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= Optional Number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately. If both Expires and Max-Age are set, Max-Age has precedence.

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

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

关于node.js - 使用 res.setheader 在 cookie nodejs 中使用 max-age,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68405368/

相关文章:

javascript - CommonJS 中的自定义 `require` 方法(特别是 Node)

node.js - GraphQL:如何嵌套来制作模式?

node.js - Primus 与 Express

mysql - 将原始 SQL 查询与 Sequelize ORM 和文字结合使用

node.js - 有没有办法在没有 10 秒加载时间的情况下处理状态代码 401 的 React useQuery?

php - 如何检查用户是否登录

node.js - 为什么当我使用 "waitForSelector"时 Puppeeteer 导致我的测试套件挂起 30 秒,即使我在页面和浏览器上调用 "close"?

javascript - 未捕获的语法错误 : Unexpected token < (from &lt;! DOCTYPE html>)

php - css 因未知原因覆盖 php

rest - 如何使用 POSTMAN 客户端发布凭据以创建基于 cookie 的 session