在禁用cookie的情况下配置express req.session

时间:2013-07-30 17:58:04

标签: node.js express

我有一个带有快速中间件的node.js网络服务器。我出于性能原因试图消除对会话存储的需求。到目前为止,我没有多少跟踪。

但是,我确实需要在loggig之后启动会话时跟踪用户名和用户ID。我已经使用express res.cookie(...)实现了这个功能,如果启用了cookie,则可以使用它。但如果禁用cookie,它将无效。

所以我在看req.session,但内部再次使用cookieSession。

  

Q1:如何跟踪用户名(一旦用户登录)   跨浏览器和NO-SESSION-STORE禁用cookie的多个请求   (REDIS / MONGO等)

     

Q2:在上面Q1的解决方案中,我希望webserver成为无状态,   所以它在任何时候都不会在记忆中增长?

有可能吗?我的问题/要求是否有意义?我是新手。

基本上我正在寻找一个cookie以外的对象,它可以成为请求的一部分,每次发送/接收请求时都会传达

请帮忙

1 个答案:

答案 0 :(得分:0)

您可以采用多种途径,因为它听起来像您控制请求者以及后端服务。

  • HTTP标头
  • 查询字符串
  • 缓存

我们知道饼干已经出局。

使用HTTP标头,除非您正在进行某种AJAX调用,否则无法始终依赖它们。

查询字符串要求您始终手动发回用户名或其他标识符。但是,它将解决Q1和Q2。

根据您的应用程序的内容,重新构建端点以使它们具有ReSTful并帮助定义操作可能是有意义的 - 这样,将用户名作为请求URL的一部分就具有语义意义。

例如:

GET http://example.com/:username => could display a profile
GET http://example.com/:username/friends => could display a list of friends.

根据应用的设计方式,您也可以使用websockets来处理用户连接和身份验证。