2016-04-14 19 views
0

Ich benutze ember simple-auth mit ember simple-auth-token und ich möchte den Wert des Token des Benutzers nehmen, um es in einem Ajax-Aufruf zu verwenden. Wie kann ich auf Token-Wert zugreifen? Ich habe versucht, die folgende Syntax:Ember Einfaches Auth & Ember Einfaches Auth Token

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

und

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

aber keiner von ihnen gearbeitet haben.

Antwort

1

Nicht sicher simple-Auth-Token, aber ich bin mit glut-simple-Auth und addiere ich das Token an jede ausgehende Anforderung eine Basis authorizer erstreckt, wie unten dargestellt:

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

Nicht vergessen Ihre Anwendung Adapter einzustellen, so dass es die authorizer verwendet:

// 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

Vielen Dank für Ihre Antwort sehr viel, aber ich für etwas einfacher war auf der Suche. Ich habe schließlich gefunden, dass ich auf das Token zugreifen kann, indem ich self.get ("session.data.authenticated.auth_token") aufruft. – Jack

+0

Ich habe das selbe gemacht, aber docs sprechen explizit über das Erweitern des Authorizers und das Überschreiben der 'authorize()' Funktion. Ich finde den Code jetzt besser lesbar, da ich keine Sorgen mischen muss, wo sie nicht hingehören. – Pavol

+1

Mit ember-simple-auth-token habe ich nur den DataAdapterMixin verwenden müssen. Alles andere wurde automatisch für mich erledigt ... – acorncom

Verwandte Themen