2016-08-03 80 views
1

我在後端使用了帶有Play REST服務的AngularJS,我對這兩個概念都相當陌生。 我想知道是否有一種方法可以在一個位置寫入Basic Auth標頭,以便默認將其添加到由Angular創建的每個http請求中。AngularJS - 設置適用於所有http請求的通用Basic Auth標頭

現在我在每個請求的開頭添加這一行。

$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode(username + ':' + password); 

我希望它只出現在一個地方而不是多個地方,以便於代碼維護。 在此先感謝!

回答

2

您可以通過在你的angular.config

var app = angular.module(); 
app.config(['$httpProvider', function($httpProvier){ 

    $httpProvider.interceptors.push(function(){ 

    return { 
    request: function(config) { 
     config.headers.Authorization = YOUR_AUTHORIZATION_HEADER; 
     return config; 
    } 
    } 

    }); 

}]); 
+0

感謝@Robin使用$ HTTP攔截你的答案做到這一點。你能舉一個完整的例子嗎? –

+0

這是我用於項目的代碼。它使用loopback(www.loopback.io)登錄,loopback返回一個令牌,並將其保存到localStorage的響應中。根據要求,我將令牌添加到我的驗證標題,這會導致我被授權:-) http://pastebin.com/Xr69e4BV –

+1

難題。我添加了我的東西,它的工作:)謝謝你太多了! @Robin –