Работа с состоянием в Backbone.js и вход пользователя - PullRequest
3 голосов
/ 22 января 2012

Мне нужно проверить, что пользователь вошел в систему и прошел аутентификацию, прежде чем разрешить ему или ей использовать мое приложение на основе backbone.js.

Аутентификация пользователя сохраняется в собственной базовой модели как свойство, которое я проверяю перед запуском моего основного маршрутизатора, вызывая Backbone.history.start. Таким образом, неаутентифицированный пользователь отправляется на страницу входа напрямую.

Достаточно ли этого?

if (!myApp.state.loggedIn) {
    window.location.hash = "login"; // Set url to #login
}

Backbone.history.start();  // Start history as usual

Ответы [ 2 ]

2 голосов
/ 22 января 2012

, если доступ к вашему REST API бэкэнда защищен на стороне сервера, и он не позволит получить доступ к каким-либо пользовательским данным, когда я, например, остановлю выполнение кода из инструментов разработчика и отредактирую данные модели (как, например, set state.loggedIn).установить значение true и установить пользователя, которого я хотел бы украсть из идентификатора как своего собственного).Вероятно, вам также следует сохранить сеанс cookie и, возможно, защиту CSRF для предотвращения подделки межсайтовых запросов.

Но в основном серверная часть должна перенаправлять пользователя на страницу входа, когда пользователь не вошел в систему или его сеанс истек.

1 голос
/ 10 сентября 2013

Вы также можете использовать магистральную асинхронность до и после фильтров для решения таких проблем.

Я сделал библиотеку для обработки входов в систему и сеансов для нас.

https://github.com/chirag04/backbone-async-route-filter

...