Ember 简单验证 - 恢复 session 时未设置授权方

Ember Simple Auth - Authorizer not being setup when the session is restored

下面的代码目前有效,但是 如果我删除带有 _setup 的行,则传出请求没有授权 header。

感觉我不应该使用 _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);
});

恢复是一项在应用程序启动和存储更改时运行的便捷功能。据我所知,它不打算手动调用,但应该在应用程序启动时自动触发并从会话数据恢复。无论您尝试通过手动调用 restore 来做什么,您都可以在 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)
    });
  },

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

routes/application.js (代码片段)

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

authenticators/application.js

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