当我从浏览器选项卡运行Sails应用程序时,我会得到一个唯一的会话,您可以在其中存储身份验证信息。如果您在其他浏览器选项卡中启动相同的应用程序,则会话是相同的,因此已经过身份验证。虽然有用,但我不希望如此。我希望每个浏览器选项卡都有一个完全唯一的会话。这是可能的,如果是的话,怎么样? sails.sid是如何生成的?我想也许我可以产生一个独特的秘密,但当然我的代码看到它的时间已经太晚了。
显然我根本不必使用req.session,并为每个标签生成我自己的唯一标识符和存储,但是如果可以的话我想使用标准会话。
答案 0 :(得分:1)
您不能为同一浏览器实例中的每个标签创建唯一会话。 会话的工作方式不适合您想要实现的目标。
一种解决方案是使用套接字来识别选项卡。注意,您无法重新加载页面,因为每次都会获得一个新套接字。
答案 1 :(得分:0)
您需要脏黑客。
beforeConnect()
处理socketId = sessionId
&的逻辑如果需要,可以将它存放在某处。afterDisconnect()
处理从存储中删除会话的逻辑。注意:标签刷新始终创建新会话,因为刷新意味着打开 当前标签本身中的新标签。