Node.js:处理多个会话
Node.js: take care of multiple sessions
我正在开发一个非常简单的 Node.js 服务器。用户通过普通 username/password 表单进行身份验证,服务器 - 在检查数据库后 - 授予或拒绝对其他页面的访问权限。
为了跟踪每个用户在做什么,我将生成一个 UUID 以在登录时发送。当客户端向服务器请求或发送任何内容时,它会包含此 UUID,以便服务器知道用户是谁。
问题是关于这些 UUID 的生命周期:
何时必须从我的本地阵列中删除 UUID? IE。当用户 "disconnects" 时,我猜它是明确注销还是在不活动超时之后。如果他让智能手机待机一段时间,我不想断开连接。
如果用户在会话仍然存在时重新加载页面,我想避免重新登录:我需要一种方法来了解连接来自同一用户。你将如何实现这一点?
我会做的是使用 JWT。我会要求用户使用用户名和密码登录,然后向他们发出一个 JWT,其中包含用户标识符(用户名或 ID)的有效载荷和一个设置的到期时间,表示允许的最大不活动时间(取决于您的业务逻辑),比如 5 小时。我还可以包含上次注销日期等。
现在,每当用户向您的服务发出请求时,他都会在他的 header 中发送此 JWT,您可以解码该令牌并检查用户是否已注销(令牌上次注销时间小于用户的注销时间)。
您可以跟踪各种事情。
可能还有其他方法,使用会话。
我正在开发一个非常简单的 Node.js 服务器。用户通过普通 username/password 表单进行身份验证,服务器 - 在检查数据库后 - 授予或拒绝对其他页面的访问权限。
为了跟踪每个用户在做什么,我将生成一个 UUID 以在登录时发送。当客户端向服务器请求或发送任何内容时,它会包含此 UUID,以便服务器知道用户是谁。
问题是关于这些 UUID 的生命周期:
何时必须从我的本地阵列中删除 UUID? IE。当用户 "disconnects" 时,我猜它是明确注销还是在不活动超时之后。如果他让智能手机待机一段时间,我不想断开连接。
如果用户在会话仍然存在时重新加载页面,我想避免重新登录:我需要一种方法来了解连接来自同一用户。你将如何实现这一点?
我会做的是使用 JWT。我会要求用户使用用户名和密码登录,然后向他们发出一个 JWT,其中包含用户标识符(用户名或 ID)的有效载荷和一个设置的到期时间,表示允许的最大不活动时间(取决于您的业务逻辑),比如 5 小时。我还可以包含上次注销日期等。
现在,每当用户向您的服务发出请求时,他都会在他的 header 中发送此 JWT,您可以解码该令牌并检查用户是否已注销(令牌上次注销时间小于用户的注销时间)。
您可以跟踪各种事情。
可能还有其他方法,使用会话。