Мои аутентификаторы / custom.js:
import Ember from 'ember';
import Base from 'simple-auth/authenticators/base';
export default Base.extend({
restore: function(data) {
},
authenticate: function(email, password, authenticateCallback) {
return new Ember.RSVP.Promise((resolve, reject) => {
Ember.$.ajax({
type: 'POST',
url: apiOrigin + '/api/v1/login',
data: {
email: email,
password: password
},
dataType: 'json'
}).then(function(userData){
console.log('login post success', userData)
authenticateCallback(userData)
Ember.run(function() {
resolve(userData.uuid)
})
})['catch'](function(main){
alert('login error ' + JSON.stringify(main))
console.error('\'caught\' error from login post request', arguments);
})
})
},
invalidate: function(data) {
}
});
И войдите в / controller.js:
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
application: Ember.inject.controller(),
actions: {
authenticate() {
let { identification, password } = this.getProperties('identification', 'password');
this.get('session').authenticate('authenticator:custom', identification, password, (userData) => {
//TODO set these properties on ember-simple-auth's session object instead of application controller
this.get('application').setProperties(userData)
this.transitionToRoute('associate-device')
}).catch((reason) => {
this.set('errorMessage', reason.error);
})
}
}
});
Мой маршрут ассоциированного устройства - это AuthenticatedRoute. Я не получаю сообщения об ошибке, но вместо этого последнее, что выводится на консоль, - это «Подготовка к переходу от логина к ассоциированному устройству».
По сути, ember simple auth документы здесь http://ember-simple-auth.com/api/classes/BaseAuthenticator.html#method_authenticate, что "выполнение обещания приведет к тому, что сеанс будет аутентифицирован. Любые данные, с которыми разрешается обещание, будут сохранены и доступны через свойство data.authenticated службы сеанса (см. data). Отклонение обещания указывает на то, что аутентификация не удалась, и в результате сеанс останется неаутентифицированным ". Однако мой сеанс, похоже, не прошел аутентификацию после того, как я успешно выполнил свое обещание.
restore
аутентификатора, чтобы убедиться, что проблема не связана с тем, что он не реализован. - person marcoow   schedule 12.11.2015