更改后的请求在 angular 6 中不起作用
Changed request does not work in angular 6
我有以下函数调用刷新服务来获取新的授权令牌:
private handle401Error(request: HttpRequest<any>, next: HttpHandler) {
if(!this.isRefreshingToken) {
this.isRefreshingToken = true;
return this.authService.refreshToken()
.subscribe((response)=> {
if(response) {
const httpsReq = request.clone({
url: request.url.replace(null, this.generalService.getUserId())
});
return next.handle(this.addTokenToRequest(httpsReq, response.accessToken));
}
return <any>this.authService.logout();
}, err => {
return <any>this.authService.logout();
}, () => {
this.isRefreshingToken = false;
})
} else {
this.isRefreshingToken = false;
return this.authService.currentRefreshToken
.filter(token => token != null)
.take(1)
.map(token => {
return next.handle(this.addTokenToRequest(request, token));
})
}
}
当响应未定义且请求被返回时,它不会调用新请求
好的,事情是这样引用来信的:
但我仍然有一个问题,请求不会调用新请求,当我刷新页面时它会提供带有新令牌的数据,而不是像我之前遇到的未经授权的错误。
我有以下函数调用刷新服务来获取新的授权令牌:
private handle401Error(request: HttpRequest<any>, next: HttpHandler) {
if(!this.isRefreshingToken) {
this.isRefreshingToken = true;
return this.authService.refreshToken()
.subscribe((response)=> {
if(response) {
const httpsReq = request.clone({
url: request.url.replace(null, this.generalService.getUserId())
});
return next.handle(this.addTokenToRequest(httpsReq, response.accessToken));
}
return <any>this.authService.logout();
}, err => {
return <any>this.authService.logout();
}, () => {
this.isRefreshingToken = false;
})
} else {
this.isRefreshingToken = false;
return this.authService.currentRefreshToken
.filter(token => token != null)
.take(1)
.map(token => {
return next.handle(this.addTokenToRequest(request, token));
})
}
}
当响应未定义且请求被返回时,它不会调用新请求
好的,事情是这样引用来信的:
但我仍然有一个问题,请求不会调用新请求,当我刷新页面时它会提供带有新令牌的数据,而不是像我之前遇到的未经授权的错误。