如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中
Posted
技术标签:
【中文标题】如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中【英文标题】:How to detect another session is ongoing from another browser tab using Parse Server error 【发布时间】:2021-01-06 19:10:23 【问题描述】:如果用户从另一个选项卡或浏览器登录,我正在尝试自动注销应用程序。 我正在使用 react-idle-timer 和 Parse Server。
我不确定这行代码是否有用
Parse.Error.INVALID_SESSION_TOKEN
我可以通过 localStorage 访问会话令牌
const res = await Parse.Cloud.run('login', values);
console.log(res.session);
【问题讨论】:
你为什么不做检查服务器端?他们将拥有一个现有的令牌,因此新的令牌可能会被拒绝。 【参考方案1】:您无法区分来自同一浏览器中不同选项卡的请求。它将共享相同的会话令牌,并且与任何其他请求无法区分。来自不同浏览器的请求将具有不同的会话令牌,如果它们存储了一些用户信息,您可以确定哪些属于哪个用户。
如果我们重新构建您的问题,听起来您只想允许每个用户进行一次活动登录。这需要一个支持防止多个并发会话的集中式或集群式会话管理解决方案。
如果您只有一台后端服务器,或者您正在使用共享数据库来存储会话,那么您可以根据您用于会话管理的内容来更轻松地执行此操作,因为所有会话都将在一台服务器上可用.
我不清楚您的用户是否直接连接到解析服务器。如果是,您很可能需要直接修改解析服务器代码以支持此功能。
总的来说,这是一个愚蠢的想法。除非您有法律要求,否则我不会提倡对此感到担忧。绕过这个通常就像复制会话令牌一样简单。
【讨论】:
以上是关于如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 iptables 和 parse-server (Parse Server) 将 HTTP 重定向到 HTTPs
如何使用 PHP Parse SDK 连接到 mongodb Parse-Server?
Parse-Server后台搭建与使用进阶篇(二)- Parse-server常见问题及解决方法