问题:我不知道如何在控制器中获取当前会话。
我有一个自定义身份验证器,自定义会话和初始化程序,如下所示:
来自../ app / authenticators / custom.js中的CUSTOM AUTHENTICATOR
var CustomAuthenticator = Base.extend({
authenticate: function(credentials) {
return new Ember.RSVP.Promise(function (resolve, reject){
var loginPromise = Ember.$.post('/api/login', {'email':credentials.identification, 'password':credentials.password} );
loginPromise.then(function (data){
resolve({
token: data.user.api_key,
userData: data.user
});
}, function(error){
reject(error);
});
});
}
});
在... / app / sessions / custom.js中的CUSTOM SESSION
import Ember from 'ember';
import Session from 'simple-auth/session';
var CustomSession = Session.extend({
after:'simple-auth',
currentUser: function(){
return this.container.lookup('ember_simple_auth:session');
}.property('currentUser')
});
export default CustomSession;
INITIALIZER in ../ app / initializers / authentication.js
import CustomAuthenticator from '../authenticators/custom';
import CustomSession from '../sessions/custom';
export default {
name: 'authentication',
before: 'simple-auth',
initialize: function(container) {
container.register('authenticator:custom', CustomAuthenticator);
container.register('session:custom', CustomSession);
}
};
我尝试使用token
在我的某个控制器中获取userData
和this.get('session')
,但它给了我以下内容:
Class {store: Class, __ember1420041799205: "ember297", __nextSuper: undefined, __ember_meta__: Object, constructor: function…}
我在本地浏览器存储ember_simple_auth:session
{"authenticator":"authenticator:custom","token":"123456789","userData":{"id":"1","email":"something@email.com","api_key":"123456789","expiry_time":"2014-12-31 14:02:56"}}
键和值
我基本上需要了解本地存储中的内容。我该怎么做?
答案 0 :(得分:0)
restore: function(data) {
return new Ember.RSVP.Promise(function (resolve, reject){
console.log('RESTORE');
if(!Ember.isEmpty(data.token)) {
console.log('Found token: ' + data.token);
resolve(data);
} else {
console.log('Token Not Found!');
reject();
}
});
}