問題:EmberJS從灰燼,簡單-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。
謝謝!
哦,哇,我從來沒有意識到燼簡單auth有自己currentUser。非常感謝! – IFH
通過任何機會,你知道爲什麼在app/services/current-user.js(來自你發給我的鏈接)裏面有一個錯誤,說「沒有爲'user'找到模型」?抱歉,我是新來的燼。 – IFH
在Ember中,Ember Data有助於保存和檢索您的服務器上的數據。 A **模型** [「定義了您呈現給用戶的數據的屬性,關係和行爲。」](https://guides.emberjs.com/v2.5.0/models/#toc_models)它看起來像好像你需要在你的應用中創建一個['user'模型,像這樣](https://ember-twiddle.com/ce25a4c6497906e95a87eff95ad410ec?openFiles=models.user.js%2C)。 – jacefarm