Node.js:处理多个会话

时间:2016-10-19 04:57:08

标签: javascript node.js session server connection

我在一个非常简单的Node.js服务器上工作。用户通过普通的用户名/密码表单进行身份验证,服务器 - 在检查数据库后 - 授予或拒绝访问其他页面。

要跟踪每个用户正在做什么,我将生成一个UUID以便在登录时发送。当客户端向服务器询问或发送任何内容时,它将包含此UUID,以便服务器知道谁是用户。

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

  • 何时必须从本地阵列中删除UUID?即当用户"断开"时,我想如果它明确地注销或者在超时不活动之后。如果他将智能手机待机一段时间,我不想断开连接。

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

1 个答案:

答案 0 :(得分:2)

我要做的是使用JWT。我会要求用户使用用户名和密码登录,然后向他们发送一个JWT,其中包含用户标识符(用户名或ID)的有效负载,以及设置的到期时间,表示允许的最大不活动时间(取决于您的业务逻辑)比如5小时。我还可以包含上次退出日期等。

现在,只要用户向您的服务发出请求,用户就会在其标题中发送此JWT,您可以解码该令牌并检查用户是否已注销(令牌上次注销时间少于用户的注销时间) )。

你可以跟踪各种事情。

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