Ember无法创建'授权人的实例:令牌'使用ember-simple-auth和ember-simple-auth-token

时间:2017-04-20 13:56:13

标签: ember.js ember-simple-auth

我尝试使用ember-simple-auth和ember-simple-auth-token模块在我的Ember应用程序中实现JWT身份验证,方法是遵循GitHub上的README文件。我认证部分非常容易。我可以将凭据发送到身份验证端点,然后获取令牌。但是当我尝试通过JSONAPIAdapter实现授权时,我收到以下错误

  

错误:无法创建' authorizer:token'的实例。最有可能的   未正确定义的类或无效的模块导出。

我使用的是Ember 2.12并进行了以下设置:

应用程序/适配器/ application.js中

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
  host: 'http://localhost:8000',
  authorizer: 'authorizer:token'
});

应用程序/路由/ users.js

import Ember from 'ember';

export default Ember.Route.extend({
  session: Ember.inject.service('session'),
  model() {
    return this.store.findAll('user');
  }
});

的package.json

"ember-cli-simple-auth": "^0.8.0",
"ember-simple-auth": "^1.2.2",
"ember-simple-auth-token": "^2.1.0",

1 个答案:

答案 0 :(得分:0)

我不知道你的身份验证器是怎样的,但你可以为你的授权人尝试这样的事情:

import Base from 'ember-simple-auth/authorizers/base';
import Ember from 'ember';

export default Base.extend({
  session: Ember.inject.service(),

  authorize(data, block) {
    if (Ember.testing) {
      block('Authorization', 'Bearer beyonce');
    }
    const { token } = data
    if (this.get('session.isAuthenticated') && token) {
      block('Authorization', `Bearer ${token}`);
    }
  }
});