所以首先我必须提供一个标题名称,在我的根模块 angular2-jwt 配置中看起来像这样:
provideAuth({
headerName: 'BearerToken',
headerPrefix: '',
tokenName: '',
tokenGetter: () => {
return JSON.parse(localStorage.getItem('bearerToken'));
},
globalHeaders: [{'Content-Type': 'application/json'}],
noJwtError: true,
noTokenScheme: true
})
还是不行。经过一番研究,我发现标题名称应该是“授权”,而令牌名称应该是“承载者”。好的,让我们试试这样:
provideAuth({
headerName: 'Authorization',
headerPrefix: '',
tokenName: 'Bearer',
tokenGetter: () => {
return JSON.parse(localStorage.getItem('bearerToken'));
},
globalHeaders: [{'Content-Type': 'application/json'}],
noJwtError: true,
noTokenScheme: true
})
我的带有 Authorize-Tag 的 ControllerMethod 仍然没有到达。好的,最后一次尝试,也许当我手动添加 'Bearer' 时它可以工作:
provideAuth({
headerName: 'Authorization',
headerPrefix: '',
tokenName: 'Bearer',
tokenGetter: () => {
var token: string = JSON.parse(localStorage.getItem('bearerToken'));
return 'Bearer ' + token;
},
globalHeaders: [{'Content-Type': 'application/json'}],
noJwtError: true,
noTokenScheme: true
})
并且...炸弹惊喜...它起作用了;)再玩一点,我发现 tokenName 可以为空或可以包含其他任何内容。