几个月前我也在考虑同样的问题,最终决定选择单页应用内部的登录解决方案。
我认为,决定两种方法之间的取舍的关键因素是,你是否介意在用户登录之前加载完整的应用程序。
如果登录界面是单页应用的一部分,那么在向用户呈现登录界面之前会进行引导。这有两个缺点。首先,您可能会提前加载大量js、css等您甚至不需要的内容。其次,您会让未经授权的用户访问您的代码。尽管这些都可以解决,但这些问题仍然需要考虑。
如果登录界面与单页应用分开,这将给您带来维护方面的负担,因为您必须维护在应用程序之外的东西,并且还需要与您的应用程序集成(例如主题、标志、字体等)。但即便如此,Gmail也在使用这种方法:P
我不知道您正在使用哪种服务器技术,但谷歌在ng-conf的演示文稿中提供了针对上述问题的一些很好的解决方案(不幸的是,在这项工作出现之前,我已经实现了我的解决方案)
https://docs.google.com/file/d/0B4F6Csor-S1cNThqekp4NUZCSmc/edit (从第9页开始)