2013-10-21 117 views
1

我有一個服務auth與函數login,其登錄到服務器並保存授權令牌給一個變量內的工廠:配置服務

myApp.factory 'auth', ['$http', ($http) -> 
    @token = null 
    @login = (user, pass) -> 

    ... 

] 

登錄後,我更新$http的工廠在每個請求的標題中使用已定義的標記。

myApp.factory 'httpAuthInterceptor', ($injector, $q) -> 
    request: (request) -> 
    token = ($injector.get 'auth').token 
    request.headers.Authorization = "Bearer " + token 
    return request or $q.when request 

的問題是攔截器的頂層啓動配置:

myApp.config ($httpProvider) -> 
    $httpProvider.interceptors.push 'httpAuthInterceptor' 

我怎樣才能重新配置登錄功能之後,或作爲其最後一步?

謝謝!

回答

1

你並不需要修改攔截器,一旦驗證完成後,你應該設置應用廣泛的頭在你的AUTH工廠以下:

$http.defaults.headers.common['Authorization'] = "Bearer " + token;