gpt4 book ai didi

node.js - 关于express.cookieSession()的几个问题

转载 作者:搜寻专家 更新时间:2023-10-31 23:18:41 25 4
gpt4 key购买 nike

在我的 node.js 服务器上(运行 expresssocket.io),当有人连接时,我将他们添加到一个数组中并保存他们在数组中的位置进入他们的 session ,这样每个连接都可以访问他们自己的信息,如下所示:

session.person_id = people.length;
session.save();
people.push(new Person());
//people[session.person_id] => Person

我在 session 中唯一保存的是 person_id。我一直在使用 express.session() 来处理这个问题,在我开始向同时连接的每个人发送信息之前,它一直运行良好。当我遍历他们的连接并获得他们的 session 时,有时(我不知道如何欺骗错误)session 存在但 session.person_id 不存在。

无论如何,我希望通过改变我存储 session 的方式,它可以帮助我找出我的问题。所以我有几个问题在任何地方都找不到答案。

  1. express.cookieSession() 的 cookie 存储在哪里?服务器端还是客户端?
  2. express.cookieSession() 是否允许多个服务器在负载均衡器后面运行?
  3. 用户在使用 express.cookieSession() 时是否可以操纵 session 数据?

最佳答案

1 - 来自 express.cookieSession() 的 cookie 存储在哪里?服务器端还是客户端?

cookie 在服务器回复时发送,浏览器随每个请求发回该 cookie。

2 - express.cookieSession() 是否允许多个服务器在负载均衡器后面运行?

是的,如果您使用共享存储(如 RedisStore)

3 - 用户在使用 express.cookieSession() 时是否可以操纵 session 数据?

如果您使用签名 cookie(当您在初始化 session 时提供 secret 时,express 中 session cookie 的默认设置),则不会。

var redis = require('redis').createClient();
app.use(express.session({
secret: "some random string",
store: new RedisStore({client: redis})
}));

关于node.js - 关于express.cookieSession()的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com