2016-04-14 1 views
0

J'utilise le simple-auth avec le simple-auth-token et je voudrais prendre la valeur du token de l'utilisateur pour l'utiliser dans un appel ajax. Comment puis-je accéder à la valeur du jeton? J'ai essayé la syntaxe suivante:Ember Simple Auth & Ember Simple Auth Token

headers: {"Authorization":"Token" + " auth_token"} 

et

headers: {"Authorization":"Token" + " session.data"} 

mais aucun d'entre eux ont travaillé.

Répondre

1

ne suis pas sûr-auth-jeton simple, mais je me sers Ember-simple-auth et j'ajoute le jeton à chaque requête sortante extension d'un approbateur de base comme indiqué ci-dessous:

// app/authorizers/my-own-authorizer.js 

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

export default Base.extend({ 

    /** 
    * Authorizes all outgoing requests by a session-token that has been received during a login process. 
    * If such a session token does not exist, it does not add anything. 
    * @override 
    * @param {Object} sessionData received from the backend on a successful login 
    * @param {Function} addHeaderFunction function that appends a custom header into the next request 
    */ 
    authorize(sessionData, addHeaderFunction){ 
    const sessionToken = Ember.get(sessionData, "meta.session-token"); 
    if (Ember.isPresent(sessionToken)) { 
     addHeaderFunction('authorization', sessionToken); 
    }  
    } 
}); 

Ne pas oublier pour ajuster votre adaptateur d'application afin qu'il utilise l'autorisateur:

// app/adapters/application.js 
... 
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin'; 

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, { 
.... 
authorizer: 'authorizer:my-own-authorizer', 
... 
} 
+0

Merci beaucoup pour votre réponse, mais je cherchais quelque chose de plus simple. J'ai finalement trouvé que je peux accéder au jeton en appelant self.get ("session.data.authenticated.auth_token"). – Jack

+0

J'avais l'habitude de faire la même chose mais les docs parlent explicitement d'étendre l'autorisateur et de surcharger la fonction 'authorize()'. Je trouve le code plus lisible maintenant, car je n'ai pas besoin de mélanger les problèmes auxquels ils n'appartiennent pas. – Pavol

+1

Avec ember-simple-auth-token j'ai seulement besoin d'utiliser le DataAdapterMixin. Tout le reste a été géré automatiquement pour moi ... – acorncom