ember.js + ember-simple-auth как я могу загрузить модели приложений после аутентификации?

Я добавляю ember-simple-auth для обработки аутентификации для приложения, которое я создаю. В настоящее время в ApplicationRoute я использую модель для загрузки содержимого боковой панели.

Некоторые данные зависят от свойства URL-адреса пользователя, которое возвращается с токеном аутентификации.

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

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

Маршрут приложения

App.ApplicationRoute = Ember.Route.extend(Ember.SimpleAuth.ApplicationRouteMixin,
{
    model: function()
    {
        return Ember.RSVP.hash(
        {
            collections: Ember.$.getJSON(this.session.get('user.url') + '/collection'),

            libraries: Ember.$.getJSON(ENV.api + '/library')
        });
    },


    setupController: function(controller, model)
    {
        controller.set('libraries', model.libraries);

        controller.set('collections', model.collections);
    }
});

Отображение маршрута

App.Router.map(function()
{
    this.route('login');

    // Authenticated Routes

    this.route('my-account');

    this.route('collection', { path: '/collection/:id' });

    this.route('item.new', { path: '/item/new' });

    this.route('item.edit', { path: '/item/:id' });

    this.route('library', { path: '/:slug' });
});

person Bobby Sciacchitano    schedule 12.06.2014    source источник


Ответы (2)


Вы можете использовать this.get('session.user_email') в маршрутах для получения электронной почты аутентифицированного пользователя, а затем использовать это для получения данных пользователя с сервера.

person Sam Selikoff    schedule 20.06.2014
comment
В итоге я сделал что-то подобное и просто вставил идентификатор пользователя в ответный пакет. - person Bobby Sciacchitano; 31.07.2014

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

person marcoow    schedule 12.06.2014