Set $httpProvider default headers after user authentification

Mehdi Chibouni picture Mehdi Chibouni · Apr 17, 2014 · Viewed 14.5k times · Source

I am considering to add a default header for the $http service, which value is an access token that will be generated after user authentification.

module.config('$routeProvider', '$locationProvider', '$httpProvider'){
    $httpProvider.defaults.headers.post['XSRF-AUTH'] = 
        "some accessToken to be generated later"; 
}

Problem is, the config() block is applied when Angular bootstraps its core components. Is there a way to alter $ĥttpProvider dynamically ?

Answer

Leo picture Leo · Apr 17, 2014

You can change the default header through the $http object during runtime instead of the $httpProvider. For example you can do the following outside of a config block:

$http.defaults.headers.post['XSRF-AUTH'] = "access token";

Check out the $http api docs for more details http://docs.angularjs.org/api/ng/service/$http#setting-http-headers.