Я ищу несколько хороших ресурсов, шаблонов и практических приемов для решения основных задач безопасности, таких как авторизация, в клиентском JavaScript.
Я создаю веб-сайт с серверной системой, на которой работает одна из распространенных сред MVC.Серверная часть будет обрабатывать все реальные потребности безопасности: авторизацию и аутентификацию.Фронт будет построен с Backbone.js, jQuery и несколькими другими библиотеками, чтобы облегчить очень богатый пользовательский опыт.
Вот пример одного сценария, который мне нужно обработать:
Iиметь сетку данных с несколькими кнопками поверх него.Если вы выберете элемент в сетке, некоторые кнопки станут активными, чтобы вы могли выполнить это действие для выбранного элемента.Эту функциональность легко построить ...
Теперь мне нужно рассмотреть вопрос авторизации.Внутренний сервер будет отображать только те кнопки, с которыми пользователю разрешено работать.Кроме того, внутренний сервер проверяет авторизацию, когда пользователь пытается выполнить это действие.... так что серверная часть закрыта, и пользователь не сможет делать то, что он пытается, если он не авторизован.
Но как насчет JavaScript?Если мой код настроен с помощью набора обработчиков нажатий jQuery или других событий, которые включают и отключают кнопки, как мне обрабатывать кнопки, которых там нет?Я просто пишу кучу уродливых if
операторов, проверяющих существование кнопки?Или я пишу JavaScript таким способом, который позволяет мне отправлять JavaScript только для существующих кнопок, вплоть до браузера, на основе авторизации?или ???
Теперь представьте себе древовидное представление, которое может или не может использовать функцию перетаскивания, основанную на авторизации ... и форму добавления / редактирования, которая может существовать или не существовать на основе авторизации ...и все эти другие сложные авторизационные потребности, с большим количеством JavaScript для запуска этих частей внешнего интерфейса.
Я ищу ресурсы, шаблоны и методы для обработки сценариев такого рода, где обрабатывает серверная частьреальное разрешение, но внешний интерфейс также должен учитывать вещи, которых там нет, на основании разрешения.