如何在工厂之间共享令牌?

时间:2014-07-29 11:59:06

标签: angularjs

我有一个LoginFactory,它返回一个auth对象,其中包含token。我需要在我发出的任何REST API调用的标头中设置此标记,并将用户登录后发布。

在事实上共享此令牌的最佳方式是什么,以便可以在所述工厂中使用该值?

我尝试使用angular.module.value,但这似乎不起作用。 (该值永远不会被设置。)

2 个答案:

答案 0 :(得分:0)

在你的工厂制作两种方法

_gettoken(){

return token;
}
_settoken(token_temp){
  token=token_temp;

}

现在使用此工厂方法在

的任何地方使用它

答案 1 :(得分:0)

我希望它会起作用

app.factory(' authInterceptorService',[' $ q',' $ location',' localStorageService',function($ q ,$ location,localStorageService){

var authInterceptorServiceFactory = {};

var _request = function (config) {

    config.headers = config.headers || {};

    var authData = localStorageService.get('authorizationData');
    if (authData) {
        **config.headers.Authorization = 'Bearer ' + authData.token;**
    }

    return config;
}

var _responseError = function (rejection) {
    if (rejection.status === 401) {
        $location.path('/login');
    }
    return $q.reject(rejection);
}

authInterceptorServiceFactory.request = _request;
authInterceptorServiceFactory.responseError = _responseError;

return authInterceptorServiceFactory;

}]); 更多细节, http://bitoftech.net/2014/06/09/angularjs-token-authentication-using-asp-net-web-api-2-owin-asp-net-identity/