Commit faa055d4 by Nattana Chaiyamat

แก้ login ไม่ต้องส่ง token

parent 084807ff
......@@ -23,20 +23,21 @@ export class HttpRequestInterceptor {
return next.handle(req);
} else {
let authReq = req;
console.log(req.url)
const fullUrl = req.url.startsWith("http") ? req.url : environment.baseUrl + req.url;
const token = this.tokenService.getToken()
if (token != null && !req.url.includes("/refresh-token")) {
authReq = this.addTokenHeader(req, "Bearer " +token ,fullUrl);
}else{
authReq = this.addTokenHeader(req, "Bearer " + token, fullUrl);
} else {
const overideReq = {
url: fullUrl,
};
authReq = req.clone(overideReq);
}
return next.handle(authReq).pipe(catchError(error => {
if (error instanceof HttpErrorResponse && error.status === 403 && !fullUrl.includes("login")) {
return this.handle403Error(authReq, next ,fullUrl);
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")) {
return this.handle403Error(authReq, next, fullUrl);
}
return throwError(error);
}));
......@@ -44,7 +45,7 @@ export class HttpRequestInterceptor {
}
private handle403Error(request: HttpRequest<any>, next: HttpHandler , fullUrl : string) {
private handle403Error(request: HttpRequest<any>, next: HttpHandler, fullUrl: string) {
if (!this.isRefreshing) {
this.isRefreshing = true;
this.refreshTokenSubject.next(null);
......@@ -52,14 +53,14 @@ export class HttpRequestInterceptor {
const token = this.tokenService.getRefreshToken();
if (token)
return this.authService.refreshToken(token.replace("Bearer ","")).pipe(
return this.authService.refreshToken(token.replace("Bearer ", "")).pipe(
switchMap((token: any) => {
this.isRefreshing = false;
this.tokenService.saveToken(token.accessToken);
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, token.accessToken, fullUrl));
}),
catchError((err) => {
this.isRefreshing = false;
......@@ -73,17 +74,17 @@ export class HttpRequestInterceptor {
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, token, fullUrl)))
);
}
private addTokenHeader(request: HttpRequest<any>, token: string ,fullUrl :string) {
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) });
/* for Node.js Express back-end */
return request.clone({ headers: request.headers.set(TOKEN_HEADER_KEY, token) , url : fullUrl });
return request.clone({ headers: request.headers.set(TOKEN_HEADER_KEY, token), url: fullUrl });
}
}
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