如何使用解析服务器错误从另一个浏览器选项卡检测另一个会话正在进行

问题描述

如果用户从另一个选项卡或浏览器登录,我正在尝试自动注销应用程序。 我正在使用 react-idle-timer 和 Parse Server。

我不确定这行代码是否有用

Parse.Error.INVALID_SESSION_TOKEN

我可以通过 localStorage 访问会话令牌

  const res = await Parse.Cloud.run('login',values);
  console.log(res.session);

解决方法

您无法区分同一浏览器中不同标签的请求。它将共享相同的会话令牌并且与任何其他请求无法区分。来自不同浏览器的请求将具有不同的会话令牌,如果它们存储了一些用户信息,您就可以确定哪些属于哪个用户。

如果我们重新定义您的问题,听起来您只想允许每个用户进行一次活动登录。这需要一个支持防止多个并发会话的集中式或集群式会话管理解决方案。

如果您只有一台后端服务器,或者您使用共享数据库来存储会话,那么您可以更轻松地执行此操作,具体取决于您用于会话管理的内容,因为所有会话都将在一台服务器上可用.

我不清楚您的用户是否直接连接到解析服务器。如果是这样,您很可能需要直接修改解析服务器代码以支持这一点。

总的来说,这是一个愚蠢的想法。除非您有法律要求这样做,否则我不主张担心这一点。绕过它通常就像复制会话令牌一样简单。