场景:考虑一个登录系统(Node.js + Express + Socket.IO),它匹配用户名和密码并允许用户访问经过身份验证的页面。登录系统将会话 ID 存储为客户端的 cookie,并在服务器上对每个经过身份验证的页面请求进行验证,并相应地允许/禁止。
问题:现在,假设同一个用户从不同的机器或浏览器登录,我希望以前的用户推送到会话过期页面并显示信息,例如:“您可能从不同的浏览器或机器登录。请不要分享密码。有关更多信息,请访问:SomeLinkHere"
注意:我只是不想使用户登录会话无效,当用户从不同的浏览器或机器登录时,即使用户没有单击任何链接或请求任何进一步的身份验证页面,我也想将用户推送到会话过期页面.
这背后的主要意图:为了避免出现以下情况,例如:“如果用户正在观看一些敏感数据,例如实时报告(即socket.io上的仪表板)并将他的密码分享给其他人。”
问题:既然 socket.io 已经用于实时数据上报,如何在不重载现有 socket.io 连接的情况下实现呢?