首先,我要说的是,我的确理解,永远不要尝试在客户端上保护javascript中的任何内容。我的问题是指一些用户会看到而其他人不会看到的UI。通常,此UI还会绑定某种逻辑。无论是Backbone还是Ember,根据用户角色显示或隐藏UI的不同部分的常规做法是什么?
我最初的想法是根据当前登录的用户加载不同的js。除此之外,我还想到了异步加载视图模板。我很想听听其他想法和模式。请记住,这是假定客户端与之通信的后端API对于给定用户已经是安全的。因此,即使他们要查看安全的UI组件,也无法正常工作。
最佳答案
我不确定这是否真的是安全问题。无论如何,安全性由服务器处理。它与应用程序具有不同模式时如何组织javascript有关。
我认为为这两种模式设置一套完全不同的javascript文件不是一个好主意。您应该尝试将数据和功能分开,并在每种模式下提供不同的数据。即如果您有菜单,则不要对所有菜单项进行硬编码,而要对服务器进行Ajax调用并加载菜单项。让服务器根据用户权限提供不同的菜单项。
当然,某些功能仅在管理模式下才有意义。最好将其放在单独的文件中。
关于javascript - 在一页js应用程序中保护UI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12606053/