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