我想知道为什么将SPA的登录页面作为单独的页面而不是SPA的页面(如在加载和通过ajax请求发送数据中)的页面似乎很流行?
我唯一能想到的就是安全性,但是我无法想到特定的安全性原因。我的意思是,唯一想到的是,如果您的登录页面是SPA的一部分,它将通过ajax发送用户名/密码,而Firebug或网络检查器之类的工具也可以看到该用户名/密码,即使您以普通方式发送该用户名/密码POST请求,还有其他可以轻松捕获此数据的工具(例如fiddler,httpscoop等)。
我有什么想念的吗?
我想知道为什么将SPA的登录页面作为单独的页面而不是SPA的页面(如在加载和通过ajax请求发送数据中)的页面似乎很流行?
我唯一能想到的就是安全性,但是我无法想到特定的安全性原因。我的意思是,唯一想到的是,如果您的登录页面是SPA的一部分,它将通过ajax发送用户名/密码,而Firebug或网络检查器之类的工具也可以看到该用户名/密码,即使您以普通方式发送该用户名/密码POST请求,还有其他可以轻松捕获此数据的工具(例如fiddler,httpscoop等)。
我有什么想念的吗?
Answers:
大概是为了节省大量仅应用程序所需的客户端资产(例如沉重的JavaScript框架,图像等)的加载。
有多种实现类似性能目标的复杂方法(请参阅“ Malte Ubl和John Hjelmstad:一种新颖,高效的JavaScript加载方法-JSConf EU 2012 ”),但这实现起来非常快,而且可以说同样高效,尤其是当您的网络应用仍然会使用几乎所有资产。
您可以在http://infogr.am beta 这样的网站中随意查看:
我认为有一些合理的理由支持或反对,我想说技术在决定中也起着作用。
有人可能会说拥有单独的登录“页面”可以使用“目录安全性”。通常,任何人都可以看到登录“页面”,但是只有经过身份验证的用户才能查看应用程序“页面”及其“目录”。路由也可以被锁定,其中/ Account /与/ App /不同,并且每个都有自己的安全“配置文件”。
另外,如果您使用的是SPA方法,并且将身份验证与应用程序体验混合在一起,则逻辑可能会令人费解。不必假设用户“因为他们在这里而已登录”,而是必须不断检查其身份验证状态并询问“此用户应在这里”。
另外,登录页面通常位于面向消费者的网站上。您访问www.yourapp.com,其中包含有关信息,联系方式,支持等信息。以及登录页面。身份验证,您可以重定向到整个目标主机。
我保留一个单独的登录页面的原因,以及为什么我针对“面向消费者”的网站实际上拥有完全不同的应用程序的原因是,因为我无法向未经身份验证的人公开很少的内容。偶然地,一个笨蛋开始在我的登录页面上敲打,我不希望那会影响应用程序方面的事情..即使登录仅执行简单的身份验证..它也可以帮助我防止bozo的影响用户体验..最坏的情况是,我的用户站点关闭,没有人可以登录,但是至少登录的用户不知道,他们的体验也不会开始变慢。.我并不是说那是防弹的选择..但至少我已将风险隔离到未经身份验证的区域。