You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express使用cookie-parser设置Cookie过期时间始终为30分钟问题求助

问题排查方案

  • 属性拼写&类型错误:第一种写法中的expire是错误属性名,Express 中指定绝对过期时间的正确属性为expires,且值必须为Date实例,不能直接传入时间戳,正确写法如下:

    res.cookie('mycookie', 'value',{expires: new Date(Date.now() + 3600000), secure: true, httpOnly: true});
    

    错误写法会导致该属性被忽略,框架会使用默认的会话级过期规则,或被其他逻辑覆盖配置。第二种通过maxAge设置过期时长的写法语法本身没有问题,若该写法也无法生效,继续排查以下问题。

  • 服务端与客户端时间差校验:检查部署服务的服务器系统时间、时区是否和访问端一致,如果服务器时间比客户端慢30分钟,你配置的1小时过期时间在客户端视角就只剩30分钟,会触发提前过期。

  • 上层代理/全局中间件的Cookie覆盖逻辑排查:

    • 确认Nginx、CDN等反向代理层是否存在修改Set-Cookie响应头、强制修改Cookie过期时间的规则
    • 排查项目中是否有全局中间件、session相关中间件在你设置Cookie之后,重写了同名Cookie的配置,比如统一设置30分钟过期的逻辑
  • 浏览器端实际Cookie配置校验:打开浏览器开发者工具的「应用/Application」面板,找到对应域名下的mycookie,查看它的实际过期时间属性:

    • 如果显示的过期时间就是30分钟,说明问题出在服务端返回时就已经被修改
    • 如果显示的过期时间符合1小时的配置,但实际30分钟就被清除,检查浏览器是否开启了Cookie自动清理、隐私限制规则,或者是否有同域名下其他接口写入了同名Cookie覆盖了你的配置

内容的提问来源于stack exchange,提问作者John doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:06:02