Ember.js - 如何将数据从身份验证器保存到会话?
Ember.js - How can I save data to session from authenticator?
我试过 this.get('session') 但它什么也没给我。
我想将数据保存到我的会话
我似乎只能从身份验证器获得我需要的信息,但似乎无法传递它。 (尝试了 SO 上建议的几种方法,但 none 似乎能够从身份验证器工作)
import Ember from 'ember';
import Torii from 'ember-simple-auth/authenticators/torii';
const { service } = Ember.inject;
export default Torii.extend({
torii: service('torii'),
authenticate(options) {
return this._super(options).then(function (data) {
console.log(data);
});
}
});
认证者的调用者(我需要的信息已经可以从这里访问了吗?)
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
authenticateSession() {
this.get('session').authenticate('authenticator:torii', 'google-token');
},
invalidateSession() {
this.get('session').invalidate();
}
}
});
您的身份验证器的 authenticate
方法没有解决任何问题。改成
import Ember from 'ember';
import Torii from 'ember-simple-auth/authenticators/torii';
const { service } = Ember.inject;
export default Torii.extend({
torii: service('torii'),
authenticate(options) {
return this._super(options).then(function (data) {
console.log(data);
return data;
});
}
});
通过会话的 data.authenticated
属性 使 data
中的所有属性可用,例如this.get('session.data.authenticated.token')
.
当然,在这种情况下,如果不需要日志记录,您可以完全删除覆盖的 authenticate
方法。
我试过 this.get('session') 但它什么也没给我。
我想将数据保存到我的会话
我似乎只能从身份验证器获得我需要的信息,但似乎无法传递它。 (尝试了 SO 上建议的几种方法,但 none 似乎能够从身份验证器工作)
import Ember from 'ember';
import Torii from 'ember-simple-auth/authenticators/torii';
const { service } = Ember.inject;
export default Torii.extend({
torii: service('torii'),
authenticate(options) {
return this._super(options).then(function (data) {
console.log(data);
});
}
});
认证者的调用者(我需要的信息已经可以从这里访问了吗?)
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
authenticateSession() {
this.get('session').authenticate('authenticator:torii', 'google-token');
},
invalidateSession() {
this.get('session').invalidate();
}
}
});
您的身份验证器的 authenticate
方法没有解决任何问题。改成
import Ember from 'ember';
import Torii from 'ember-simple-auth/authenticators/torii';
const { service } = Ember.inject;
export default Torii.extend({
torii: service('torii'),
authenticate(options) {
return this._super(options).then(function (data) {
console.log(data);
return data;
});
}
});
通过会话的 data.authenticated
属性 使 data
中的所有属性可用,例如this.get('session.data.authenticated.token')
.
当然,在这种情况下,如果不需要日志记录,您可以完全删除覆盖的 authenticate
方法。