如何在没有maxAge的情况下在Redis node.js中设置会话到期日期?

谢尔盖·赫罗诺夫(Sergei Hronov)

我有以下代码:

const redisClient = redis.createClient({
   host: 'localhost',
   port: 6379,
   ttl: 10
});

app.use(session({
  store: new RedisStore({ client: redisClient });,
  secret: 'some secret',
  resave: false,
  saveUninitialized: false,
  cookie: {
    httpOnly: true,
    sameSite: true,
    maxAge: 60*1000
  }
}));

一切都会按预期进行。在后maxAge到期,Redis的也被清除。但是,如果删除maxAge并离开ttl,则将永远不会清除redis,如何在不指定的情况下清除redis maxAge,因为用户可以将cookie的值更改maxAgenull,然后再也不会清除redis。我可以以某种方式直接在Redis中而不是在Cookie中指定到期时间吗?还是我弄错了?先感谢您。

莱巴尔·艾德尔曼

正如您在connect-redis文档中的ttl选项看到的那样-“如果会话cookie具有过期日期,connect-redis将使用它作为TTL。”

因此,在这种情况下-cookie和redis中的密钥都将在到期时被清除。

即使客户端将以某种方式更改cookie的过期时间,它也不会影响redis(因此cookie可能通过HTTP请求发送,但服务器无法识别它)。

(您没有提到您使用的是哪个模块,我只是假设它express-sessionconnect-redis

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在构造函数中设置到期日期?

如何在Java中设置软件的到期日期?

在GnuPG中,如何设置密钥的绝对到期日期?

如何在没有浏览器的情况下在node.js中使用FormData?

如何在没有sudo权限的情况下在CentOS上安装Node.js

存储具有到期日期的会话数据

如何在没有 node.js 的情况下在 js 中建立客户端 - 客户端连接?

如何在Laravel中设置一年后的到期日期

如何在没有node.js / npm的情况下在本地使用Angular2,systemjs?

为将来的帐户设置到期日期有问题

如何设置AsyncStorage的到期日期-React Native

如何设置HTML链接的到期日期

Corda中带有到期日期的令牌?

如何使Node.js在没有端口号的情况下在Apache服务器上运行

使用Search-ADAccount查找未设置帐户到期日期的所有帐户

如何使用Spring Boot设置JSESSION cookie的到期日期时间

如何设置ASP.NET_SessionId cookie的到期日期?

如何解决“在HTTP标头中设置到期日期或最长期限”

如何使用CodeIgniter数据库中促销的开始日期和到期日期?

如何在node.js中没有任何请求的情况下获得快速会话值

如何在Android中通过客户端获取订阅的到期日期?

如何在Java中以编程方式检查SSL证书的到期日期

如何在Inapp V3 Android中获取订阅到期日期

如何在令牌端点响应中添加刷新令牌到期日期?

如何在asp.net的插入查询中插入信用卡到期日期

如何在OpenERP 7中提醒用户未付发票的到期日期?

在没有Express之类的框架的情况下在Node.js中提供CSS,JS文件

在没有 Github 的情况下在 Microsoft Azure 上部署 node js 应用程序

在没有jQuery的情况下在node.js上合并或合并JSON