Issue:EmberJS получить текущий пользователь из уголька-простого-AUTH идентифицирующого
Я пытаюсь получить текущий пользователь вошел в системе с Ember-простого-AUTH путем расширения ember-simple-auth/authenticators/base
. Я просто хочу, чтобы создать функцию, называемую currentUser()
, которая будет возвращать имя пользователя, но я получаю ошибку, когда я пытаюсь вызова функции:
Uncaught TypeError: this.get(...).currentUser is not a function(…)
Попытка:
функция currentUser()
определяется следующим образом:
// app/authenticators/oauth2.js
import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';
const RSVP = Ember.RSVP;
export default Base.extend({
restore() {
// restore user session
},
currentUser() {
return this.get("username");
}),
authenticate(username, password) {
this.set('username', username);
return new RSVP.Promise((resolve, reject) => {
Ember.$.ajax({
url: config.baseURL + "accounts/login",
data: {
username: username,
password: password
},
type: 'POST',
dataType: 'json',
contentType: 'application/x-www-form-urlencoded',
complete: (response)=> {
if (response.responseJSON.isAuthenticated)
resolve({isAuthenticated: true});
else
reject("Wrong credentials.");
}
});
});
},
invalidate() {
// log out
}
});
я назвал функцию с помощью:
// app/controllers/application.js
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
alertSession() {
console.log("!! " + this.get('session').currentUser());
},
invalidateSession() {
this.get('session').invalidate();
this.transitionToRoute('login');
}
}
});
this.get('session').invalidate();
работает, но this.get('session').currentUser();
вернет ошибку, упомянутую выше. Пожалуйста, дайте мне знать, как это исправить. Кроме того, я использую Ember 2.5.1.
Спасибо!
О, ничего себе, я никогда не понимал, что у ember-simple-auth есть свой собственный currentUser. Спасибо! – IFH
Насколько вам известно, почему внутри app/services/current-user.js (из ссылки, которую вы мне отправили) появляется сообщение об ошибке «Модель не найдена для пользователя»? Извините, я новичок в ember. – IFH
В Ember, Ember Data помогает сохранять и извлекать данные на ваш сервер и обратно. Модель ** ** ** определяет атрибуты, отношения и поведение данных, которые вы представляете пользователю. »(Https://guides.emberjs.com/v2.5.0/models/#toc_models). Он выглядит как будто вам нужно создать модель '' user' в вашем приложении, например [https://ember-twiddle.com/ce25a4c6497906e95a87eff95ad410ec?openFiles=models.user.js%2C). – jacefarm