跟踪两台不同服务器之间的用户

我有2个服务器:

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

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

他们都是https。

现在应用程序的devise方式是服务器1处理login页面,服务器2处理仪表板

所以用户使用:https // localhost:8443 / loginlogin

并成功login后,我做了一个

window.open(https // localhost:443 / dashboard?userName = xyz,“_ self”);

将用户redirect到由节点服务器托pipe的仪表板。

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

用户只能在login后才能访问仪表板。

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

那么如果用户在服务器1中闲置,他怎么能保持一个轨道?他可以看到服务器2中的仪表板?

此外,我正在计划购买一个域名,但我如何主办2端口? (8443&443)

我想要类似的东西
1)https //example.com/login(端口8443)
2)https://example.com/dashboard?userName=xyz(端口443)

对于跟踪用户的问题,您可以执行以下操作(自定义解决scheme,您也可以使用现有产品实现此目的)。 点2a和b是并发的。

  1. 成功login后,在第一台服务器上生成一个令牌

2.A. 将令牌作为参数发送到redirect

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

  1. 使用redirect来检查与用户关联的令牌。 如果这些不匹配抛出一个错误

至于域,你可以设置一个反向代理,比如Apache,并将不同的pathredirect到不同的服务器。 例如:/ login将去一个端口,其余的去其他

我会build议类似的方法,亚历山德鲁给了一个扭曲的login应该生成JWT和编码所有相关的身份validation信息,以便您的node.js服务器可以validation它,并使用相应的授权用户。

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