0

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

但是,在登录后启动会话时,我确实需要跟踪用户名和用户 ID。我已经使用 express res.cookie( ... ) 实现了这一点,如果启用了 cookie,它就可以工作。但如果 cookie 被禁用,它将不起作用。

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

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

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

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

本质上,我正在寻找一个除了 cookie 之外的对象,它可以是请求的一部分,每次发送/接收请求时都会进行通信

请帮忙

4

1 回答 1

0

您可能会采取多种途径,因为听起来您控制着请求者和后端服务。

  • HTTP 标头
  • 请求参数
  • 饼干

我们知道 cookie 已经过时了。

使用 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 来处理用户连接和身份验证。

于 2013-07-30T19:13:08.993 回答