(function () { 'use strict'; angular.module('some.module', [ 'someDependency' ]) .config(InterceptorConfig); /*@ngInject*/ function InterceptorConfig($httpProvider) { $httpProvider.interceptors.push(['$q', 'localStorageService', 'AuthService', function ($q, localStorageService, AuthService) { return { 'request': function (config) { // Check if authenticated if (!AuthService.isAuth()) { // Do something if not authenticated } // Setup token config.headers = config.headers || {}; var token = localStorageService.get('bearer') || null; if (token) config.headers.Authorization = 'Bearer ' + token; return config; }, 'response': function(response) { return response || $q.when(response); }, 'responseError': function (error) { angular.element('#loader').hide(); if (error.status === 401 || error.status === 403) { // Do something on error } return $q.reject(response); } }; }]); } })();