Node.js:照顾多个会话

我正在研究一个非常简单的Node.js服务器。 用户通过一个普通的用户名/密码的forms进行authentication,服务器 – 检查数据库后 – 授予或拒绝访问其他页面。

要跟踪每个用户在做什么,我将生成一个UUIDlogin发送。 当客户端询问或发送任何东西给服务器时,它将包含这个UUID,以便服务器知道谁是用户。

这些问题是关于这些UUID的生命周期的:

  • 当我必须从我的本地数组中删除UUID? 也就是说,当用户“断开连接”,我想如果它明确注销或超时不活动。 如果他将智能手机暂时搁置一下,我不想断开连接。

  • 如果用户在会话还活着的时候重新加载页面,我想避免一个新的login:我需要一种方法来了解来自同一用户的连接。 你将如何实现这一目标?

我会做的是使用智威汤逊。 我会要求用户使用用户名和密码login,然后发给他们一个有效载荷的JWT,其中包含用户的标识符(用户名或ID),并设置到期时间,表示允许的最长不活动时间(取决于您的业务逻辑),例如5小时。 我也可以包含最后的注销date等

现在,当用户向服务器发出请求时,用户会将此JWT发送给他,您可以解码该令牌并检查用户是否注销(令牌最后注销时间less于用户的注销时间)。

你可以跟踪各种事情。

可能还有其他方式,使用会话。