如何在同一个域但不同的主机上共享本地存储令牌?

时间:2017-05-13 16:31:18

标签: .net architecture asp.net-core single-page-application

项目1:MVC App:

所以我有一个常规的.Net Core MVC应用程序,当用户导航到托管在端口3000上的myDomain.com时,用户可以登陆。在这里,我使用常规控制器和剃刀视图等。在此应用程序中,用户可以登录此时将返回JWT令牌并将其存储在本地存储中。它们还将导航到用户门户(托管在端口3001上)。此MVC应用程序还将包含我的用户门户的API控制器

项目2:SPA应用(用户门户):

用户门户基本上是一个单独的客户端SPA项目,使用react将托管在端口3001上,该端口具有自己的单独节点js服务器,并在端口3000上调用MVC项目API。

所以我的问题是如何在这两个端口上保留我的登录令牌?这甚至可能吗?这种架构是否有意义?您可以提供有关此主题的任何阅读材料。

2 个答案:

答案 0 :(得分:2)

在您的网络服务器之前放一个简单的反向代理。然后,您可以在同一个域下提供两个页面:

myDomain.com/application1 --> reverse proxy to port 3000
myDomain.com/application2 --> reverse proxy to port 3001

app1.myDomain.com --> port 3000
app2.myDomain.com --> port 3001

您可以在IIS中设置反向代理或只使用nginx。

答案 1 :(得分:1)

我认为您需要的是会话存储的跨域方案。本文讨论了一个可以用来使用IFrame共享会话存储的技巧

https://jcubic.wordpress.com/2014/06/20/cross-domain-localstorage/

希望这有帮助