这些天我面临着一个根本问题 - 我们称之为建筑设计决策。
所以我和我的团队为我的公司建立了典型的业务线(lob)-web-applications。为了我的目的,lob尤其意味着:
举个例子,让我们采用普通的审批工作流程:我需要一台新的笔记本电脑,所以我转到“ressources-webApp”并创建一个新的采购申请。我的老板收到通知,必须批准我的请求。在下一步中,适当的部门必须购买笔记本电脑并完成我的申请。
我知道这是一个简单的“hello world” - 例如,在现实生活中你会使用现有的软件(SAP或类似的东西),但它很好地描述了我的用例:数据驱动和非常严格(我可以看到我部门的所有请求,但只能更改或删除我的部门,我不应该看到批准的页面或致电批准 - api,我的老板应该只看到他的员工的请求,但不是为了雇员另一个部门,我的老板和我都不应该看到该页面或能够完成申请等等。)
目前我们正在将ASP.NET MVC和WebAPI与angularjs 1结合使用。对于每个“action”(页面或视图),都存在一个mvc-controller,它监听特定路由并返回相应的视图。每个视图都引用一个特定的角度控制器。每个视图也可以由不同的“部分视图”(组件或控件)组成。为了处理数据,角度控制器调用webAPI控制器,它也监听特定路由并处理请求(GET / POST / PUT / DELETE)。如果允许用户打开页面或调用操作,则每个控制器(mvc和webAPI)都会检查cookie中的每个http请求的授权令牌。
现在我想知道如何在角度为2的SPA应用程序中执行此操作。对于我来说,Angular 2听起来非常有趣并且比角度1有一些好处,所以我想尝试角度2.看起来有角度2你只能构建一个SPA应用程序(与我上面提到的“经典”MPA应用程序相比,其中每个页面都来自服务器并包含一个角度控制器)。
一般来说,我并不喜欢SPA,但我不确定如何处理上述安全问题。
此外,SPA还存在其他常见问题:无法在浏览器中使用后退按钮,无法直接在浏览器中输入特定网址,也无法添加书签等。
那么,您对我有什么建议,小费或最佳实践吗?你认为SPA对于lob-web应用程序来说是一个很好的“模式”吗?如果是的话,您将如何处理安全问题以及其他常见的SPA问题?
祝你好运, 亚历