首页 > 解决方案 > 我可以更改存储会话的请求对象的名称吗?两个会话冲突的问题

问题描述

我对护照设置以与 twitter api 一起使用的会话有问题,因为我已经在同一连接上拥有一个活动会话,该会话调节我的客户端、我的应用程序服务器和管理多个应用程序的更通用的服务器之间的关系。此现有会话是在通用服务器上设置的,我无法轻松访问它。我可以要求对其进行更改,但我必须先知道我在问什么。当我尝试使用 express 在我的连接上建立会话时,

app.use(session({ secret: 'blablabla'}));

它会引发“TypeError:req.session.touch 不是函数”错误,表明这个新会话正在尝试覆盖现有会话。这破坏了我网站上的很多功能。

解决这个问题的一种方法是为 twitter 和我的应用程序服务器之间的通信建立一个单独的连接,这很有效。这是一个可行的后备方案,但有几个特定于应用程序的原因导致这对我来说并不理想。

然而,我想要做的是让它工作而不必向我的服务器添加新端口。我的一个想法是我可以将对象的名称从 req.session 更改为 req.session2 并避免冲突。这在 twitter 会话上不起作用,因为 twitter 不知道查看 req.session2,但是有没有办法告诉我的应用程序服务器和它正在与之通信的通用服务器在 req.session2 中查找会话数据而不是 req.session?或者还有其他我什至没有想到的方法吗?

标签: javascriptexpresssessionpassport.js

解决方案


推荐阅读