根据需要和许可,延迟加载角度模块

时间:2017-03-14 01:31:19

标签: angularjs security module lazy-loading koa

将想要将其所有服务打包到一个单一页面应用程序中的SaaS公司使用Angular(1)。现在有一个公共区域(登陆页面等)和一个内部区域。后端有各种保护层。有不同的用户组具有不同的权限。

如果将完整的应用程序编译成单个javascript文件,则可以很容易地在JS文件中找到所有路由的提示。然后,有用于与API交互的服务/ $资源,它还包含有关应用程序功能的非常重要的信息。

现在的问题是:如何有人将模块置于某个非二进制保护级别,并且只有在用户有权查看时才加载此特定模块,而不是重新加载页面?

我可以找到一种方法来懒惰地将模块添加到角度应用程序中。我还可以保护服务器端的单个文件,只发送给授权用户。但是,当有越来越多的用户群时,这似乎是一种无法解决的麻烦。

你是否知道为此目的的任何通用库,理想情况下与koa同步,这不会产生巨大的开销?你知道一些grunt / gulp /无论什么过程,这对你有帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用最新的ui.router,它允许您延迟加载路由。 https://ui-router.github.io/ng1/docs/latest/interfaces/state.statedeclaration.html#lazyload

此外,您可以使用Web包并使用多个入口点来创建单独的包。 https://webpack.github.io/docs/multiple-entry-points.html

通过以上步骤,您可以优化应用,但我认为这不会为网络资产添加任何保护。你可以缩小使生活有点难以理解你的JS代码正在做什么。