我们正在研究将标准身份验证(登录)与Angular SPA集成的最佳方法。我们遇到了两种模式(见下文),并希望看到哪种模式被认为是一种“更好”的架构,可以将身份验证集成到我们的Angular网站中。
PATTERN 1 - 保持与SPA的分离(参见here):在此模式中,登录过程在SPA之外完成(单独的页面加载),一旦用户通过身份验证,他们将被重定向到SPA (另一页加载)。
模式2 - 集成登录到SPA(参见here和here):在此模式中,身份验证过程在SPA中,登录状态通过Angular路由器和服务进行管理。 / p>
我们倾向于PATTERN 2,但是我们希望从SO社区中听到您的想法是什么,以及您如何比较这两种模式。
谢谢!
答案 0 :(得分:5)
我认为决定两种方法之间的决定因素是你是否想在用户登录前加载完整的应用程序。
如果登录是SPA的一部分,则在向用户显示登录之前将进行引导。这有两个缺点。首先你加载了许多你甚至可能不需要的js,css等。其次,您授权未经授权的用户访问您的代码。 我认为两者都是小问题,因为它们都可以解决但仍有待考虑。
如果登录与SPA分开,则会给您带来维护费用,因为您必须在应用程序之外维护某些内容,并且还需要与您的应用程序集成(例如主题,徽标,字体等)。但话说回来,Gmail正在这样做:P
我不知道您使用的是哪种服务器技术,但来自ng-conf的Google演示文稿为上述问题提供了一些很好的解决方案(不幸的是,我已经实现了我的解决方案)
https://docs.google.com/file/d/0B4F6Csor-S1cNThqekp4NUZCSmc/edit(幻灯片9自己)