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