0

假设我有一个名为 Angular 的应用程序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 的值吗?

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

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

4

1 回答 1

0

您可以Login在身份验证后从您的服务中执行此操作,并且它将在您的应用程序中可用。

login: function(...) {
    $http.post(...).then(function(response) {
        $http.defaults.headers.common['X-AUTH'] = response.data.randomkeybyserver;
    });
}
于 2014-08-13T12:54:47.360 回答