gpt4 book ai didi

javascript - Passport.js session 自行失效

转载 作者:行者123 更新时间:2023-11-28 04:20:44 26 4
gpt4 key购买 nike

我们有两个在前端使用 Angular 的 Sails.js 应用程序:App AApp B,它们都使用 Passport 和 OpenID Connect 进行身份验证。它们都可以独立地工作。

我们现在尝试将人员从应用 A 发送到应用 B,并在执行此操作时在应用 B 中设置 session 变量。这实际上很好用。问题是,执行此操作后,App A 中的 session 将失效,并且在刷新完成之前,App A 中的任何调用都不会起作用。

将我们从App A发送到App B的操作是一个简单的链接,一个带有href<的a标签 将它们发送到新应用程序。看起来它根本不应该影响 session 。以前有人遇到过这样的问题吗?下一步要检查什么?

浏览器中的Cookie没有变化;只是服务器上的 session 被更改。

最佳答案

这并不是没有答案:这里的问题很可能是两个应用程序在不同的端口上被提升,但具有相同的域(localhost)。由于无论端口如何,cookie 都会分配给,因此两个应用程序都从浏览器接收相同的 cookie,因此共享 session 存储中的一个槽。当一个应用程序在 session 中更改某些内容时,另一个应用程序会受到影响,因为它们共享 session 。

由于 OP 声明在生产中这两个应用程序将位于不同的域中,因此这实际上只是开发中的一个问题。有几种不同的方法可以解决此问题:

  1. 在隐身窗口中查看其中一个应用程序(或“隐私浏览”,或您的特定浏览器的任何称呼)。这样,无论域如何,它都会获得自己的 cookie。
  2. 使用 http://localhost 查看其中一个应用,使用 http:/127.0.0.1 查看另一个应用。不同的域,不同的 cookie。
  3. app1.localhostapp2.localhost 条目添加到您的 /etc/hosts 文件(或 Windows 等效文件),并使用这些域浏览时。

关于javascript - Passport.js session 自行失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com