我试图为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呼叫的方式。有什么我想念的吗?这个特殊的调用正在命中一个获取对象数组的端点。
答案 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();
});
}