Angular auth-0 - 如何不发送" Bearer"某些请求中的令牌

时间:2016-02-24 18:03:58

标签: angularjs ionic-framework auth0

我试图为JWT争论auth-0角度插件,我被困在一个地方,我设置jwtInterceptor将JWT令牌推入每个请求的标头中制成。

这是我的代码:

// Send JWT with every request
  jwtInterceptorProvider.tokenGetter = ['config', function(config) {
    var user = JSON.parse(localStorage.getItem('ngStorage-user'));
    var token = user.token;
    return token;
  }];

  $httpProvider.interceptors.push('jwtInterceptor');

问题在于,有些情况我需要拨打电话,我不会在请求的标头中发送令牌,例如在注册时获取初始JWT令牌。截至目前,使用我的代码,如果没有设置JWT,则会导致错误。

我的另一个想法是只编辑每个调用以手动发送标头中的令牌,但我似乎无法获得使用ngResource的请求:

function getCourseCatalog(token) {
      return Registrar.checkToken($localStorage.user.token).then(function(data) {
               return $resource($rootScope.APIBaseURL + 'catalog',{
                  query: {
                    method: 'GET',
                    isArray: true,
                    headers: {
                      Authorization: 'Bearer ' + $localStorage.user.token
                    }
                  }
                });
             });
    }

^使用此功能,呼叫永远不会发出,我非常确定这正是你应该设置$ resource呼叫的方式。有什么我想念的吗?这个特殊的调用正在命中一个获取对象数组的端点。

1 个答案:

答案 0 :(得分:1)

事实证明该函数缺少一个参数,但另外,我还需要在$ resource上运行query()函数才能实际进行调用。新功能如下所示:

function getCourseCatalog(token) {
      return Registrar.checkToken($localStorage.user.token).then(function(data) {
               return $resource($rootScope.APIBaseURL + 'catalog',{},{
                  query: {
                    method: 'GET',
                    isArray: true,
                    headers: {
                      Authorization: 'Bearer ' + $localStorage.user.token
                    }
                  }
                }).query();
             });
    }