在引导时在AngularJs中添加自定义标头

时间:2014-08-13 12:02:02

标签: angularjs authentication dependency-injection auth-token

假设我有一个名为chococalateApp的角度应用,它取决于其他3个模块,即ProductSalesLogIn

现在,我的应用程序正在构建RESTful API。成功登录后,服务器将通过发回验证令牌进行响应。每当使用X-AUTH服务时,我都想将此标记附加为自定义标头$http。由于我的所有REST API都需要身份验证令牌,因此我需要在每个$http请求中附加此标头。这可以通过配置$ httpProvider来实现,如下所示:

angular.module('chocolateApp',['Product','Sales','Login'])
  .config(['$httpProvider', function($httpProvider){
     $httpProvider.defaults.headers.common['X-AUTH'] = 'randomkeybyserver'
 }
])

我的问题是,我可以注入模块已经引导的auth-token AFTER 的值吗?

例如,我在LogIn模块中有一个能够进行身份验证的服务,并检索了所需的令牌。如何将令牌传递回主chocolateApp模块并进行配置?这会导致循环依赖,还是我对DI的理解在这里是错误的?

如果无法实现,应如何设计?

1 个答案:

答案 0 :(得分:0)

您可以在身份验证后通过Login服务进行此操作,它将在您的应用中提供。

login: function(...) {
    $http.post(...).then(function(response) {
        $http.defaults.headers.common['X-AUTH'] = response.data.randomkeybyserver;
    });
}