用于标题的Restangular响应拦截器

时间:2015-08-20 05:13:17

标签: angularjs restangular angular-http-interceptors http-token-authentication

我正在从角度应用程序到服务器端进行数据通信。服务器创建一个令牌并将其发送到标头中。我正在寻找使用Restangular拦截响应的方法并将其保存在localStorage中。我还没有成功。

我在我的应用程序.config

中做了类似的事情
RestangularProvider.addResponseInterceptor('HttpInterceptor');

然后在HttpInterceptor中我调用Storage来存储Header。但我收到了一些错误,无法弄清楚这一点。

提前致谢!

1 个答案:

答案 0 :(得分:1)

经过大量的研究,我终于找到了适合我的解决方案。

所以在我的app.js中,我包含了这个:

.config(function ($stateProvider, $urlRouterProvider, RestangularProvider, $httpProvider) {
    $httpProvider.interceptors.push('AuthInterceptor');
}

然后我在AuthInterceptor服务中进行标头提取。

angular.module('myApp')
  .factory('AuthInterceptor', AuthenInterceptor);

AuthenInterceptor.$inject = ['$localStorage'];

function AuthenInterceptor($localStorage) {
  return {
    response: function (response) {
      var authToken = response.headers('You Token Name');
      if (authToken) {
        $localStorage.userToken = authToken;
      }
      return response;
    }
  };
}

希望它可以帮助有类似问题的人。谢谢!