Ember-cli-simple-auth-devise: Авторизация: Token token = ‹user_token›, user_email = ‹user_email› (заголовок не добавлен)

Заголовок «Авторизация» по какой-то причине не устанавливается. Я попытался установить авторизатор в config / environment.js с помощью

обновлено: согласно предложению @marcoow

 ENV['simple-auth'] = {
    crossOriginWhitelist: ['*'],
    authorizer: 'simple-auth-authorizer:devise'
  };
  ENV['simple-auth-devise'] = {
    serverTokenEndpoint: 'users/sign_in',
  };

... Я могу войти в свое приложение, обновив другие ресурсы, такие как авторизация после публикации: Token token = "", user_email = "" не добавляется к моему вызову сервера

контроллер / dashboard.js

import Ember from 'ember';
export
default Ember.Controller.extend({
    actions: {
        add: function () {
            var name = this.get('name');
            var start = this.get('Start');
            var end = this.get('End');
            var game = this.store.createRecord('game', {
                name: name,
                start: start,
                end: end
            });
            game.save();
        }
    }
});

мой запрос выглядит примерно так

** 1. Я понимаю, что заголовки запросов здесь также должны содержать заголовок Authorization :.

  1. Я использую драгоценный камень Rack-Cors, чтобы включить Cors
  2. Я заглянул в источник ember-simple-auth-devise / lib / simple-auth-devise / authorizers / devise.js. authorize: function () добавляет это в запрос. Я не знаю, как вызвать этот метод.

Заголовки запроса

контроллер входа в систему

import Ember from 'ember';
import LoginControllerMixin from 'simple-auth/mixins/login-controller-mixin';
export
default Ember.Controller.extend(LoginControllerMixin, {
    authenticator: 'simple-auth-authenticator:devise',
    actions: {
        authenticate: function () {
            console.log('i was called');
            var self = this;
            var data = this.getProperties('identification', 'password');
            self.get('session').authenticate(this.get('authenticator'), data).then(function () {
                self.transitionToRoute('dashboard');
            }, function (error) {
                console.log(error);
            });
        }
    }
});

Я вижу:

Как я могу авторизовать сохранение модели № с помощью devise .... используя ember-data devise authorizer в контроллере

просто для отладки я сделал это в route / dashboard.js

import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin,{
  model: function() {
    console.log(this.get('session.isAuthenticated')); # this is true 
  }
});

person Rigel    schedule 07.11.2014    source источник
comment
Итак, вы аутентифицируетесь на сервере A, но хотите получить ресурсы с сервера B, верно? И проблема в том, что серверу B нужна такая же аутентификация, как и на сервере A, верно?   -  person givanse    schedule 10.11.2014
comment
Привет, у моего sessionController возникли проблемы, и, следовательно, мой пользователь не прошел аутентификацию, а заголовки Authorization: Token ... не отображались в моем вызове. просто скопируйте вставленный контроллер сеанса из примера github и начните работать   -  person Rigel    schedule 11.11.2014


Ответы (1)


crossOriginWhitelist не является свойством пакета Devise - вам необходимо настроить это для базового пакета Ember Simple Auth:

ENV['simple-auth'] = {
  crossOriginWhitelist: ['*']
};

ENV['simple-auth-devise'] = {
  serverTokenEndpoint: 'users/sign_in',
  authorizer: 'authorizer:devise'
};
person marcoow    schedule 07.11.2014
comment
спасибо за быстрый ответ. но он все еще не работает. Отображаются предварительные заголовки. Принять: application / json, text / javascript, /; q = 0,01 Content-Type: application / json; charset = UTF-8 Источник: localhost: 4200 Referer: localhost: 4200 / приборная панель Пользовательский агент: Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 37.0.2062.120 Safari / 537.36 X-DevTools -Emulate-Network-Conditions-Client-Id: 92FBA4BB-F997-4006-A262-EB014487ADE3 X-Requested-With: XMLHttpRequest - person Rigel; 07.11.2014
comment
Не уверен, что это за заголовки. Когда вы делаете запросы CORS, вы должны убедиться, что сервер также разрешает их - используйте стойку-корс или подобное промежуточное ПО. - person marcoow; 08.11.2014
comment
спасибо @ marcoow. Я использую rack-cors для включения cors .... я предполагаю, что метод авторизации в authorize / devise.js не выполняется в моем случае. поскольку я могу войти в систему, но не могу передать user_email и user_token на сервер. может быть непонимание с моей стороны - person Rigel; 08.11.2014
comment
Вам нужно будет выполнить отладку кода - в частности, здесь: github.com/simplabs/ember-simple-auth/blob/master/packages/ - person marcoow; 10.11.2014