我正在使用Ember-simple-auth进行身份验证,但似乎无法将数据保存到会话存储中。
我的登录方法如下:
authenticate() {
const { username, password } = this.getProperties('username', 'password');
this.get('session').authenticate('authenticator:oauth2', username, password).catch((err) => {
this.set('loginError', 'Login failed: ' + JSON.stringify(err.message));
})
}
这将正确返回API令牌并将isAuthenticated设置为True。我还可以访问{{session.content.authenticated}},但找不到向会话存储添加新数据的正确方法。
我的会话服务使用计算所得的属性返回带有用户信息的promise,如下所示:
player: computed('isAuthenticated', function() {
const userId = this.get('session.content.authenticated._id');
if (!Ember.isEmpty(userId)) {
return DS.PromiseObject.create({
promise: this.get('store').findRecord('user', userId)
})
}
然后我可以通过注入会话服务来访问{{session.user.properties}},但在浏览器中看不到任何会话数据。我唯一能看到的是本地存储中的ember_simple_auth-session?如何扩展自己的自定义会话数据类?