2012-01-21 2 views
3

Мне нужно проверить, что пользователь вошел в систему и прошел аутентификацию, прежде чем позволить мне или ей использовать мое приложение на основе backbone.js.Работа с состоянием в 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

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

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

1

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

Я создал lib для обработки логинов и сеансов для нас.

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

Смежные вопросы