gpt4 book ai didi

node.js - 在nodejs mongostore中维护跨子域的登录 session

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:17 26 4
gpt4 key购买 nike

我正在开发一个 nodejs 网络应用程序,因为我有多个子域,如 domain.com、sub1.domain.com、sub2.domain.com 等。

如果用户登录到 sub1.domain.com 并被重定向到 domain.com 或 sub2.domin.com,它将显示为未登录,

如何跨子域和主域维护此 session ?

我正在使用 express、nodejs、mongodb。

app.use(session({
secret: "secrete key",
store: new MongoStore({
db: "session-db"
})
}));

我试过这样设置,没用:

app.use(session({
secret: "secret key",
cookie: { domain:'.yourdomain.com'}, // here I used '.localhost'
store: new MongoStore({
db: "session-db"
})
}));

最佳答案

不推荐您所问的内容,例如:Share cookie between subdomain and domain

您真正想要的是单点登录 (SSO)。

有两种方法可以在 Node 中执行 SSO(据我所知,可能还有其他我从未听说过的工具):

  • 自己编写代码。基本上你要做的是设置一个像 login.mysite.com 这样的域,你将用户重定向到该域以进行身份​​验证。一旦他们通过身份验证,您就会生成一个 JWT然后将用户重定向到 othersubdomain.mysite.com/?token=xxx,其中 xxx 是您的 JWT。这样,您的 othersubdomain 项目可以验证 JWT 是否有效,并将用户也登录到那里。
  • 使用类似express-stormpath 的库及其 SSO 功能(描述 here )。这是一项付费服务​​(虽然有免费计划),它会 100% 为您完成这些工作。

我是 express-stormpath 库的作者,所以我有点偏见,但总的来说,SSO 的东西实际上相当复杂,并且有很多潜在的问题用它不正确地实现。

关于node.js - 在nodejs mongostore中维护跨子域的登录 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626058/

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