【问题标题】:Ember fails to create an instance of 'authorizer:token' using ember-simple-auth and ember-simple-auth-tokenEmber 无法使用 ember-simple-auth 和 ember-simple-auth-token 创建 'authorizer:token' 的实例
【发布时间】:2017-04-20 13:56:13
【问题描述】:

我正在尝试按照 GitHub 上的 README 文件,使用 ember-simple-auth 和 ember-simple-auth-token 模块在我的 Ember 应用程序中实施 JWT 身份验证。我让身份验证部分很容易工作。我可以将凭据发送到身份验证端点,然后取回令牌。但是当我尝试通过 JSONAPIAdapter 实现授权时,出现以下错误

错误:无法创建“授权人:令牌”的实例。最有可能的 定义不正确的类或无效的模块导出。

我正在使用 Ember 2.12 并具有以下设置:

app/adapters/application.js

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

app/routes/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",

【问题讨论】:

    标签: ember.js ember-simple-auth


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多