我正在开发angular2项目。它有两部分,第一部分是登录,另一部分是仪表板。我想在一个应用程序中开发登录部分,在其他应用程序中开发仪表板部分。
问题是,我无法在同一页面登录app后加载仪表板应用程序。
我找到了一个链接,在这个链接中,他们在同一页面中引导两个应用程序,但我想在同一页面中加载一个应用程序。
他们在同一页面中启动两个应用程序的链接是:
Bootstrapping multiple Angular 2 applications on the same page
这样做的主要目的:安全性
假设用户想要登录,我希望Dashboard
应用程序分别由Angular2引导。
为什么我不使用单独的组件是因为我不想公开在Login
组件旁边加载的其他组件。
答案 0 :(得分:2)
我在这里看到两个主要选项(我确定还有其他选项):
您可以使您的登录和信息中心应用程序各自拥有自己的网址,例如https://myhost:1234/login和https://myhost:1234/dash。
当用户尝试转到/ dash时,服务器会检查他们是否已登录,如果不是,则重定向到/ login。当用户通过/ login登录时,服务器会设置会话,然后重定向到/ dash。
在路由器上使用guard,以防止用户导航到仪表板,除非他们已登录。
有关使用警卫的示例,请参阅TempHire Sample Application。在此示例中,guard执行对服务器的ajax调用,并使用响应来确定是否继续。 (响应还将Breeze元数据带到客户端,但这是因为它是Breeze应用程序。)