我有一个小型 Backbone 应用程序,目前正在 Drupal 站点内的页面上运行。目前,Backbone 应用程序在没有身份验证的页面上提供 - 任何用户都可以看到它。
我想在另一个页面上使用几乎相同的 Backbone 应用程序,用户只有在经过身份验证后才能看到。但是,我想为这些经过身份验证的用户添加一些高级功能。
困难在于我想为两种类型的用户使用相同的 Backbone 代码,而不是拥有两个单独的 Backbone 应用程序。你会如何建议我这样做?
我天真地想着这样的事情:
SearchView = Backbone.View.extend({
render: function() {
if (isAdvanced) {
//render advanced search options in template
}
},
runSearch: function() {
if (isAdvanced) {
// handle advanced options for client-side search
}
});
问题是 JavaScript 代码显然对未经身份验证的用户可见,我猜他们可以isAdvanced
在控制台中设置,并以这种方式解锁高级功能?
(身份验证过程本身由 Drupal 处理。如果用户没有通过身份验证来查看页面 B,他们会自动转发到登录页面。这不是问题 - 如何组织 JavaScript 代码是问题。)
我需要维护我的 Backbone 应用程序的两个不同版本吗?或者有没有办法可以在两者之间共享代码?
就上下文而言,这不是一个超级安全的应用程序,但高级功能是付费的,所以我希望它不是容易被破解的。