Ember.js - 如何从身份验证器将数据保存到会话?

时间:2016-02-08 04:49:42

标签: session ember.js ember-simple-auth

我已经尝试过这样做了。('会话')但它什么都没给我。

我想将数据保存到我的会话

我似乎只从验证者那里获得了我需要的信息,但似乎无法传递它。 (试过在SO上建议的几种方法,但似乎没有一种方法可以从认证者那里工作)

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();
      }
    }
});

1 个答案:

答案 0 :(得分:2)

您的身份验证器的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属性提供data.authenticated中的所有属性,例如this.get('session.data.authenticated.token')

当然,在这种情况下,如果您不需要记录,则可以完全删除已覆盖的authenticate方法。