在多个子域之间共享会话
Sharing session between multiple subdomains
我在同一域的不同子域上有多个前端和后端应用程序 运行。在主要的前端应用程序上,我想构建一个东西来在子域之间切换 但同时保持会话 .
我试过:
- 使用快速会话
- 使用 JWT 身份验证做一些技巧
localStorage
不会起作用,因为它只持续存在于 1 URL
但还是想不通:
是否可以跨多个子域共享一个会话?
跨多个子域共享会话的最佳解决方案是什么?
我使用的技术:
- 前端:React JS
- 后端:Node & Express JS
要跨子域共享会话,您需要配置两件事。
您需要为会话 cookie 进行适当的 cookie 设置,以便浏览器将相同的会话 cookie 发送到两个子域。这涉及将 cookie 上的 domain
属性设置为根域。您可以在快速会话配置的 cookie 选项中进行设置。
您需要确保每个子域的服务器都可以访问相同的会话存储。如果每个子域实际上是同一台服务器,那很容易。但是,如果它是不同的服务器,那么您将需要一个共享会话存储,使用某种类型的共享数据库(redis、mongodb 等)。许多不同的数据库都有会话存储实现。
我在同一域的不同子域上有多个前端和后端应用程序 运行。在主要的前端应用程序上,我想构建一个东西来在子域之间切换 但同时保持会话 .
我试过:
- 使用快速会话
- 使用 JWT 身份验证做一些技巧
localStorage
不会起作用,因为它只持续存在于 1 URL
但还是想不通:
是否可以跨多个子域共享一个会话?
跨多个子域共享会话的最佳解决方案是什么?
我使用的技术:
- 前端:React JS
- 后端:Node & Express JS
要跨子域共享会话,您需要配置两件事。
您需要为会话 cookie 进行适当的 cookie 设置,以便浏览器将相同的会话 cookie 发送到两个子域。这涉及将 cookie 上的
domain
属性设置为根域。您可以在快速会话配置的 cookie 选项中进行设置。您需要确保每个子域的服务器都可以访问相同的会话存储。如果每个子域实际上是同一台服务器,那很容易。但是,如果它是不同的服务器,那么您将需要一个共享会话存储,使用某种类型的共享数据库(redis、mongodb 等)。许多不同的数据库都有会话存储实现。