我正在尝试为 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 调用的方式。有什么我想念的吗?这个特定的调用正在访问一个获取对象数组的端点。