我正在尝试为我的Ionic应用程序实现RefreshToken功能。,但很明显,这个函数从来不执行.flatmap或.mergeMap。和我从本地存储中获得了旧的“令牌”和“refreshToken”。API使用以下格式。
{
"token": "string",
"refreshToken": "string"
}这是我的密码。
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).catch((errorResponse: HttpErrorResponse) => {
debugger;
console.log("Errr Response RefreshTokenInterceptor------", errorResponse);
debugger;
const error = (typeof errorResponse.error !== 'object') ? JSON.parse(errorResponse.error) : errorResponse;
let reqRefData = {
"token": this.token,
"refreshToken": this.refresToken
}
if (errorResponse.status === 401 && error.error.error === 'Token-Expired') {
const http = this.injector.get(HttpClient);
debugger
let url = Base_Url + 'user/refresh-token';
console.log(Base_Url + 'user/refresh-token');
debugger;
return this.http.post<any>(url, reqRefData)
// .flatMap(data => {
.mergeMap(data => {
debugger;
console.log("!!!!!Flatmap Data ", data);
localStorage.setItem('my_token', data.token);
debugger;
const cloneRequest = request.clone({ setHeaders: { 'Authorization': `Bearer ${data.token}` } });
debugger;
return next.handle(cloneRequest);
});
}
return Observable.throw(errorResponse);
});
}}我也尝试过使用.flatMap和.MergeMap。我在这里做错什么了?
发布于 2018-11-02 10:09:16
您是否收到循环依赖项的错误消息?从HTTP拦截器内部发出HTTP请求可能会抛出它。
https://stackoverflow.com/questions/53113452
复制相似问题