2014-09-05 2 views
2

Je suis en train de mettre en œuvre un autorisateur et un authentificateur personnalisés pour effectuer la signature de jeton HMAC à l'aide de la bibliothèque ember-simple-auth, et chaque pièce fonctionne bien de manière isolée, mais elle s'effondre. Si je désactive l'autorisateur, l'authentificateur peut lancer les sessions correctement, et une fois qu'il existe une session existante, l'autorisateur autorise correctement toutes les demandes à l'API, mais lorsque les deux sont en jeu, l'autorisateur altère la demande de connexion initiale. .Comment les autoriseurs d'autorisation simple d'auteur peuvent-ils être désactivés de manière sélective?

Existe-t-il un moyen d'ignorer l'autorisateur pour la demande d'authentification ou peut-être de désactiver temporairement le ajaxPrefilter qui modifie les demandes? Ou y a-t-il une meilleure façon d'y parvenir?

authentificateur:

var CustomAuthenticator = Base.extend({ 
    authenticate: function(credentials) { 
    var data = { 
     user: { 
     email: credentials.identification, 
     password: credentials.password 
     } 
    }; 

    return Ember.$.post(MyApplicationENV.API_URL + '/users/login', data).then(function(response, statusText, xhr) { 
    if (xhr.status === 201) { 
     return response; 
    } 
    }).fail(function() { 
    console.warn('login FAILED!'); 
    }); 
},... 

approbateur:

var CustomAuthorizer = Base.extend({ 
    authorize: function(jqXHR, requestOptions) { 
    var timestamp = parseInt((new Date().getTime()/1000), 10); 
    var hashedToken = window.md5(timestamp + ':' + this.get('session.authentication_token')); 
    var data = 'user_token=' + hashedToken; 
    data += '&user_email=' + this.get('session.email'); 
    data += '&timestamp=' + timestamp; 
    requestOptions.data = data; 
    } 
}); 

Répondre

2

Vous devriez vérifier Session.get ('isAuthenticated') dans le approbateur et seulement autoriser la demande si cela est vrai. De cette façon, il n'autorisera pas la demande de connexion initiale.

Questions connexes