2015-01-11 3 views
0

Как мне построить маршрутизатор для приложения с именем пользователя?Ember: Приложения с логином пользователя

Приложение требует входа в систему, чтобы получить доступ по следующим маршрутам: Книги, книги, главы, глава, глава.

Маршруты About и Home не требуют регистрации пользователя.

App.Router.map(function() { 
    this.resource('application', function() { 
    this.resource('home'); 
    this.resource('books'); 
    this.resource('book', {path: '/:book_id'}); 
    this.resource('chapters'); 
    this.resource('chapterCategory', {path: 'chapter/:chapter_type'}); 
    this.resource('chapter', {path: '/:chapter_id'}); 
    this.resource('about', {path: '/aboutus' }); 
    }); 
    this.route('catchall', {path: '/*wildcard'}); 
}); 

Когда пользователь зарегистрирован, его имя добавляется справа от главного меню, которое реализовано в шаблоне приложения. Следовательно, маршрут приложения извлекает информацию пользователя. Если пользователь не зарегистрирован, модель приложения ничего не возвращает.

Вопросы:

  1. Он есть какие-либо особые соображения, которые необходимо учитывать при определении модели в маршруте Application?

  2. Как можно изменить шаблон приложения, в котором отображается имя клиента в меню навигации, если маршрут приложения не пытается извлечь информацию о пользователе?

  3. Как вы внедряете вход пользователя в свои собственные приложения Ember? Вы создаете маршрут пользователя и устанавливаете маршруты, требующие входа в него?

Благодаря

ответ

1

Я рекомендую читать Authentication with EmberJS, или глядя на Ember Torii и Ember Simple Auth add-on.

Чтобы ответить на ваши вопросы:

  1. делая авторизацию правильно, вы будете иметь объект сеанса впрыскивается в ваши маршруты и контроллеры.
  2. У вас будет объект сеанса, который могут использовать ваши представления.
  3. Вы можете сохранить его простым и просто реализовать маршрут входа верхнего уровня, но ваш маршрут маршрута может быть «/ user/login», если вы этого действительно хотите.

После использования Ember Simple Auth через ряд версий я был бы склонен реализовывать аутентификацию с нуля в соответствии с этой статьей, поскольку в итоге вы получаете гораздо меньше кода времени выполнения, у вас есть полный контроль, вы можете поддерживать несколько сеансов до различные конечные точки API (например, сторонние службы), если требуется, и меньше бороться, если вы хотите поддерживать эскалацию привилегий для операций с чувствительными/высокоценными/высокорисковыми операциями в зависимости от ваших требований приложения.

+0

Будет ли объект Session иметь те же характеристики, что и тот же объект, извлеченный из хранилища с помощью 'this.store.find()'? Смогу ли я извлечь дочерние объекты объекта сеанса с синтаксисом, подобным: 'this.get ('session.user.childObject1.childObject2')'? –

+0

Объект сеанса поддерживает состояние сеанса и может ссылаться на любые модели, которые вы хотите сохранить в нем, как часть процесса проверки подлинности. Вы можете выбрать текущую модель пользователя, используя Ember Data, для проверки подлинности и занести ее в сеанс. Пример того, что делается здесь: http://blog.willrax.com/fetching-the-current-user-with-simple-auth/ –

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