Commit 4b4f7b48 by Nakarin Luankla

UPDATE แก้ token หมดอายุ

parent d95a5d26
......@@ -34,15 +34,12 @@ export class HttpRequestInterceptor {
authReq = req.clone(overideReq);
}
return next.handle(authReq).pipe(catchError(error => {
if (fullUrl.includes("login")) {
return this.handle403Error(this.addTokenHeader(req, "Bearer ", fullUrl), next, fullUrl);
} else if (error instanceof HttpErrorResponse && error.status === 403 && !fullUrl.includes("login")) {
if (error instanceof HttpErrorResponse && (error.status === 401 || error.status === 403) && !fullUrl.includes("login")) {
return this.handle403Error(authReq, next, fullUrl);
}
return throwError(error);
}));
}
}
private handle403Error(request: HttpRequest<any>, next: HttpHandler, fullUrl: string) {
......@@ -52,7 +49,7 @@ export class HttpRequestInterceptor {
const token = this.tokenService.getRefreshToken();
if (token)
if (token) {
return this.authService.refreshToken(token.replace("Bearer ", "")).pipe(
switchMap((token: any) => {
this.isRefreshing = false;
......@@ -60,26 +57,28 @@ export class HttpRequestInterceptor {
this.tokenService.saveRefreshToken(token.refreshToken);
this.refreshTokenSubject.next(token.accessToken);
return next.handle(this.addTokenHeader(request, token.accessToken, fullUrl));
return next.handle(this.addTokenHeader(request, "Bearer " + token.accessToken, fullUrl));
}),
catchError((err) => {
this.isRefreshing = false;
this.tokenService.signOut();
return throwError(err);
})
);
} else {
this.isRefreshing = false;
this.tokenService.signOut();
return throwError('No refresh token available');
}
}
return this.refreshTokenSubject.pipe(
filter(token => token !== null),
take(1),
switchMap((token) => next.handle(this.addTokenHeader(request, token, fullUrl)))
switchMap((token) => next.handle(this.addTokenHeader(request, "Bearer " + token, fullUrl)))
);
}
private addTokenHeader(request: HttpRequest<any>, token: string, fullUrl: string) {
/* for Spring Boot back-end */
// return request.clone({ headers: request.headers.set(TOKEN_HEADER_KEY, 'Bearer ' + token) });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment