Node.js 在两个不同的服务器之间跟踪用户

Node.js 在两个不同的服务器之间跟踪用户,node.js,session,spring-boot,cross-domain,Node.js,Session,Spring Boot,Cross Domain,我有两台服务器: 1) 端口8443上使用Spring引导的Apache tomcat服务器 2) 端口443上的节点服务器 它们都是https 现在,应用程序的设计方式是服务器1处理登录页面,服务器2处理仪表板 因此,用户可以使用:https//localhost:8443/login登录 成功登录后,我做了一个 打开(https//localhost:443/dashboard?userName=xyz,“_self”) 它将用户重定向到节点服务器托管的仪表板 现在我的问题是,如果用户直接点

我有两台服务器:

1) 端口8443上使用Spring引导的Apache tomcat服务器

2) 端口443上的节点服务器

它们都是https

现在,应用程序的设计方式是服务器1处理登录页面,服务器2处理仪表板

因此,用户可以使用:https//localhost:8443/login登录

成功登录后,我做了一个

打开(https//localhost:443/dashboard?userName=xyz,“_self”)

它将用户重定向到节点服务器托管的仪表板

现在我的问题是,如果用户直接点击https//localhost:443/dashboard?userName=xyz,那么他可以访问错误的仪表板

用户应始终仅在登录后访问仪表板

但我不能使用会话,因为会话不能在两台服务器之间共享

那么,如果用户已登录服务器1,我如何跟踪他&他被允许查看服务器2中的仪表板

我还计划买一个域名 但是如何通过2个端口承载它?(8443和443)

我想要像
1) https//example.com/login(端口8443)

2) https//example.com/dashboard?userName=xyz(端口443)

有关跟踪用户的问题,您可以执行以下操作(自定义解决方案,您也可以通过现有产品实现)。第2点a和b同时出现

  • 成功登录后,在第一台服务器上生成令牌
  • 2.a。将令牌作为参数发送到重定向

    2.b。将令牌从第一台服务器发送到第二台服务器(可能通过HTTP),并将其与用户关联

  • 检查与来自重定向的内容关联的用户令牌。如果这些不匹配,则抛出错误

  • 对于域,您可以设置一个反向代理,如Apache,并将不同的路径重定向到不同的服务器。示例:/login将转到一个端口,其余的转到另一个端口

    我建议使用与Alexandru给出的类似的方法,但使用twist-login应在那里生成s并对所有相关的身份验证信息进行编码,以便node.js服务器可以验证它并相应地对用户进行授权


    至于问题的第二部分,Apache或nginx应该足够了,就像Alexandru建议的那样。

    请看这篇关于会话粘性的文章:谢谢@Alexandru,我将尝试自定义解决方案。您还提到了现有产品。你能说出一些产品吗?我能通过哪一个?