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