1

à base de jetons le code suivant pour l'authentification basée sur des jetons avec mon api back-end dans AngularJS:intercepteurs HTTP: L'utilisation url params au lieu d'en-tête pour que j'ai auth

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function($q, $location, $localStorage) { 
     return { 
      'request': function (config) { 
       config.headers = config.headers || {}; 
       if ($localStorage.token) { 
        config.headers.Authorization = 'Bearer ' + $localStorage.token; 
       } 
       return config; 
      }, 
      'responseError': function(response) { 
       if(response.status === 401 || response.status === 403) { 
        $location.path('/signin'); 
       } 
       return $q.reject(response); 
      } 
     }; 
    }]); 

Ceci définit l'en-tête « autorisation » à mon jeton.

Comment dois-je modifier mon code pour utiliser un paramètre d'URL (nommé « access_token ») au lieu d'un en-tête?

Répondre

2

Vous devez utiliser l'argument params - de objet config {Object.}:

params – {Object.<string|Object>} - Carte des chaînes ou des objets qui seront tourné vers clé1 = valeur1 & key2 = valeur2 après? url. Si la valeur n'est pas une chaîne, elle sera JSONified.

AngularJS reference guide

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function($q, $location, $localStorage) { 
     return { 
      'request': function (config) { 
       //config.headers = config.headers || {}; 
       config.params = config.params || {}; 
       if ($localStorage.token) { 
        config.params.access_token = $localStorage.token;       
        //config.headers.Authorization = 'Bearer ' + $localStorage.token; 
       } 
       return config; 
      }, 
      'responseError': function(response) { 
       if(response.status === 401 || response.status === 403) { 
        $location.path('/signin'); 
       } 
       return $q.reject(response); 
      } 
     }; 
    }]); 
+0

Oui, je l'ai déjà essayé. Cependant, il a quelques "effets secondaires". Utiliser cette solution conduit à des problèmes avec mon rootscope (je mets $ rootScope.msg = Object ... Cependant, avec votre solution en cours d'utilisation, je ne peux pas générer $ rootScope.msg.message dans mon fichier html. . – mosquito87