Ember Simple Auth - 会话恢复时未设置授权程序

时间:2017-09-05 15:52:57

标签: ember.js ember-simple-auth

以下代码目前有效但如果我使用_setup删除该行,则传出请求不具有授权标题。

我觉得我不应该使用_setup函数,因为它不在文档中。

我做错了什么?

我使用最新版本的Ember和Ember-Simple-Auth以及Oauth密码授予。

Ember.getOwner(this).lookup('authenticator:custom').restore(token).then(() => {
    Ember.getOwner(this).lookup('session:main')._setup('authenticator:custom', token, true);
});

2 个答案:

答案 0 :(得分:1)

如果它对任何人都有帮助,这就是我最终要做的事情。

<强>路由/ application.js中 (代码段)

this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
  console.log('Reject reason', reason)
})    

<强>认证器/ application.js中

export default Authenticator.extend({
  authenticate(token) {
    return this.restore(token);
  }
});

答案 1 :(得分:0)

Restore是一个便利功能,可在app启动和存储更改时运行。据我所知,它不打算手动调用,但应该在应用程序启动时自动启动并从会话数据恢复。无论您是通过手动调用还是尝试做什么,您都可以在authenticate钩子内部处理,将令牌作为参数传递。

对自定义身份验证器的规范调用应该类似于

  session: Ember.inject.service('session'),
  someFunction() {
    let token = this.get('tokenSavedSomewhere')
    this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
      console.log('Reject reason', reason)
    });
  },