首页 文章

Ember无法使用ember-simple-auth和ember-simple-auth-token创建'authorizer:token'的实例

提问于
浏览
0

我正在尝试使用ember-simple-auth和ember-simple-auth-token模块在我的Ember应用程序中实现JWT身份验证,方法是遵循GitHub上的README文件 . 我认证部分非常容易 . 我可以将凭据发送到身份验证 endpoints ,然后获取令牌 . 但是当我尝试通过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

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

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

相关问题