У меня есть небольшое приложение Магистра, которое в настоящее время выполняется на странице в Drupal сайте. В настоящее время приложение Backbone работает на странице без аутентификации - любой пользователь может ее увидеть.Как запустить две версии приложения Backbone.js для разных групп пользователей?
Я хотел бы использовать почти одно и то же приложение базовой линии на другой странице, которое пользователь видит только в том случае, если они аутентифицированы. Однако я хотел бы добавить некоторые расширенные функции для этих аутентифицированных пользователей.
Сложность состоит в том, что я хотел бы использовать один и тот же код базовой линии для двух типов пользователей, вместо того, чтобы иметь два отдельных базовых приложения. Как бы вы порекомендовали мне это сделать?
Я наивно думал о таком роде вещь:
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 является проблемой .)
Нужно ли мне поддерживать две отдельные версии моего базового приложения? Или есть способ, которым я могу поделиться кодом между ними?
Для контекста это не супер-безопасное приложение, но расширенные функции оплачиваются, поэтому я бы предпочел, чтобы это было не тривиально hackable.
Просто уточнить - после загрузки приложения нет дополнительных запросов Ajax, поэтому нет необходимости обрабатывать дополнительную аутентификацию после ее загрузки, только то, что было отправлено клиенту при первой визуализации страницы. – Richard
Чтобы заблокировать такой взлом, отключите эту функцию для не продвинутых пользователей. если пользователь настроен isAdvanced, он получит ошибку от сервера. –
Но как отключить функцию? (Поиск на стороне клиента.) – Richard