2017-02-13 11 views
1

Я довольно новичок в ember и пытаюсь создать приложение с именем пользователя. Я решил это, используя Auth0, и после ввода учетных данных пользователь перенаправляется на protected.hbs. Мой вопрос заключается в том, как я делаю другие шаблоны внутри входа также защищены. Защищенный маршрут выглядеть следующим образом:Ember защищает несколько шаблонов

import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

и защищенный контроллер, как это:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    session: Ember.inject.service() 
}); 

Я пытался произвести, например, защищенные/пользователь страница, но на сгенерированных пользовательских страницах у меня нет похоже, могут получить доступ к сеансу от контроллера. Конечно, я мог бы создать контроллер для каждой страницы, но это не похоже на хороший способ его решения. Существует ли более эффективный способ защиты страниц под защитой? Сделать защищенную/пользовательскую страницу неотъемлемой частью защищенного статуса от ее родителя, а также иметь доступ к данным из сеанса.

Извините, если это простой вопрос, но я действительно новичок в этом, и я не смог найти информацию об этом в другом месте.

ответ

0
import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

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

Другой способ заключается в использовании вложенных маршрутов, например

this.route('protected', { path: '/protected' }, function() { 
    this.route('posts', {path: '/posts'}); 
    }); 

, а затем в protected.hbs

{{outlet}} 

, то вам нужно только сделать это на

import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

на защищенный маршрут

, но я не вижу, что такое большое дело. Просто следуйте основным процедурам.

Если вам требуется что-то от контроллера, вы создаете контроллер, который вам не нужно слишком усложнять.