Ember Simple Auth — всегда логиниться

Я работаю над закрытой системой, где вам всегда нужно войти в систему. Смешивание в AuthenticatedRouteMixin не работает на корневом (applicationroute) уровне.

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

В идеале я хотел бы рассматривать корневой маршрут так же, как AuthenticatedRouteMixin.


person user2105103    schedule 17.03.2015    source источник


Ответы (2)


Лучшее решение — добавить маршрут /internal и перенаправить на него из корневого маршрута, если пользователь вошел в систему. Вы также можете смешать маршрут AuthenticatedRouteMixin с маршрутом internal. Пользовательский интерфейс входа будет отображаться на корневом маршруте.

person marcoow    schedule 18.03.2015
comment
Таким образом, вы можете сделать корневой маршрут маршрутом входа и таким образом перенаправить в «дерево». Достойный вариант. - person user2105103; 18.03.2015

Изменить (обновленный ответ): еще проще просто добавить следующее в «routes/index.js»

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

export default Ember.Route.extend(AuthenticatedRouteMixin);

Оригинальный ответ: Хорошо, я понял это. Я путал/смешивал ApplicationRoute с корневым IndexRoute. Это примерно так же просто, как я думал, что это должно быть.

Я использую ember-cli. Это предполагает, что вы смешиваете ApplicationRouteMixin в ApplicationRoute, поэтому сеанс доступен.

Создайте файл маршрута для маршрута корневого индекса (routes/index.js)

import Ember from 'ember';

export default Ember.Route.extend({
  beforeModel: function () {
    var session = this.get('session');
    if (!session.isAuthenticated) {
      this.transitionTo('login');
    }
  }
});
person user2105103    schedule 18.03.2015