Javascript Node.js:处理多个会话

Javascript Node.js:处理多个会话,javascript,node.js,session,server,connection,Javascript,Node.js,Session,Server,Connection,我正在开发一个非常简单的Node.js服务器。用户通过普通用户名/密码表单进行身份验证,服务器在检查数据库后授予或拒绝访问其他页面 为了跟踪每个用户在做什么,我将生成一个UUID以在登录时发送。当客户端向服务器请求或发送任何内容时,它将包含此UUID,以便服务器知道用户是谁 问题是关于这些UUID的生命周期: 何时必须从本地阵列中删除UUID?也就是说,当用户“断开连接”时,我猜它是明确地注销还是在超时不活动之后。如果他把智能手机待机一段时间,我不想断开连接 如果用户在会话仍处于活动状态时重新

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

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

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

  • 何时必须从本地阵列中删除UUID?也就是说,当用户“断开连接”时,我猜它是明确地注销还是在超时不活动之后。如果他把智能手机待机一段时间,我不想断开连接

  • 如果用户在会话仍处于活动状态时重新加载页面,我希望避免重新登录:我需要一种方法来理解连接来自同一用户。你将如何做到这一点


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

      现在,每当用户向您的服务发出请求时,都会在其标头中发送此JWT,您可以解码该令牌并检查用户是否注销(令牌的上次注销时间小于用户的注销时间)

      你可以跟踪各种事情


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

      这是我的想法,但我不知道JWT!因此,所有的逻辑都在服务器端应用程序上(好的,客户端应该发回JWT)。