在单页面中,全部采用前后端分离式设计,地址路由规则全由前端进行管理,而通信则主要采用REST标准,也就是说,后端不会向前端提供视图服务,也不会在视图模板中采用后端动态语言脚本如JSP、PHP等,但客户端首次载入应用时可能会例外,多半会提供应用的上下文、访问地址约定等信息,如REST服务地址的前缀、静态资源的访问地址信息。
基于以上的约束,后端现在不能获取到用户访问地址信息,也自然不能判决请求的资源是否合法了,更不能返回包含权限信息的动态视图,所以现在如果完成权限的授权过程,则需要对原有的授权过程进行改进,具体过程如下。
- 用户发出资源请求后,前端则需要建立权限判决代理,将请求的资源信息发送给服务器;
- 服务器按照预定的规则判决用户是否具有访问权限,如果不通过,则提供403权限认证失败信息;
- 用户通过权限认证后,服务将请求的资源信息转换为前端需要的视图信息,例如视图渲染需要的模板地址信息、组件构造所需要的JS文件信息、视图ID信息等;
- 前端接收到视图信息后,按照路由规则注册视图,并激活视图渲染过程;
- 视图渲染成功后,用户也就获得了完整的资源视图。