Existe uma maneira de definir os headers $httpProvider
fora de angular.module('myApp', []).config()
?
Estou recebendo um Auth-Token do servidor após o login do usuário e preciso adicioná-lo como um header HTTP a todas as solicitações a seguir.
Você pode usar headers padrão para o 1.0.x angular:
$http.defaults.headers.common['Authentication'] = 'authentication';
ou solicitar interceptor para 1.1.x + angular:
myapp.factory('httpRequestInterceptor', function () { return { request: function (config) { // use this to destroying other existing headers config.headers = {'Authentication':'authentication'} // use this to prevent destroying other existing headers // config.headers['Authorization'] = 'authentication'; return config; } }; }); myapp.config(function ($httpProvider) { $httpProvider.interceptors.push('httpRequestInterceptor'); });
Como fábricas / serviços são singletons, isso funciona desde que você não precise alterar dinamicamente seu valor de ‘autenticação’ depois que o serviço tiver sido instanciado.
$http.defaults.headers.common['Auth-Token'] = 'token';
Parece headers()
normaliza os nomes das chaves.
Adicionando as respostas acima de @Guria e @Panga
config.headers['X-Access-Token'] = $window.sessionStorage.token;
Pode-se usar o x-access-token no header como JWT (jsonwebtoken). Eu armazeno o JWT no armazenamento da session quando um usuário autentica pela primeira vez.