2017-04-20 1 views
0

J'essaie d'implémenter l'authentification JWT dans mon application Ember en utilisant le ember-simple-auth et ember -simple-auth-token modules en suivant leurs fichiers README sur GitHub. J'ai la partie d'authentification pour travailler assez facilement. Je peux envoyer des informations d'identification au point de terminaison d'authentification et récupérer un jeton. Mais lorsque je tente de mettre en œuvre l'autorisation par l'JSONAPIAdapter, je reçois l'erreur suivanteEmber ne parvient pas à créer une instance de 'authorizer: token' en utilisant ember-simple-auth et ember-simple-auth-token

Error: Failed to create an instance of 'authorizer:token'. Most likely an improperly defined class or an invalid module export.

J'utilise Ember 2.12 et ont la configuration suivante:

app/adaptateurs/application.js

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

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

Répondre

0

Je ne sais pas comment est votre authentificateur, mais vous pouvez essayer quelque chose comme ça pour votre approbateur:

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