第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 HTTP 攔截器成功刷新令牌并執(zhí)行請(qǐng)求后重試組件中的訂閱

在 HTTP 攔截器成功刷新令牌并執(zhí)行請(qǐng)求后重試組件中的訂閱

冉冉說 2023-03-18 11:25:12
我需要幫助來弄清楚如何在我的攔截器刷新令牌并成功克隆并再次發(fā)出 http 請(qǐng)求后重試組件中出現(xiàn)錯(cuò)誤 401 的訂閱。在我收到錯(cuò)誤 401 后,我的攔截器獲取新令牌并調(diào)用任何端點(diǎn)。我正在取回?cái)?shù)據(jù),但問題出在我的組件中,錯(cuò)誤卡在那里,沒有任何反應(yīng),如果我刷新視圖,一切都恢復(fù)正常,但我想知道如何刷新或重試該組件訂閱以繼續(xù)401錯(cuò)誤消失后的過程。這是我在攔截器中的 401 處理:intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {    return from(this.db.storage.get(TOKEN_KEY))    .pipe(      switchMap((token: any) => {      if (token) {      request = this.addToken(request, token.token);      }      return next.handle(request).pipe(catchError(error => {        if (!window.navigator.onLine) {          this.ui.showSwalErrorPrompt('Error','No internet conection!.');          return //cancel request      }else{        if (error instanceof HttpErrorResponse && error.status === 401) {          this.handle401Error(request, next,token);       } else if(error instanceof HttpErrorResponse && error.status === 500){         return throwError(error);       }else if(error instanceof HttpErrorResponse && error.status === 0){        return throwError(error);       }      }      return throwError(error);    }));  })    );  }  private addToken(request: HttpRequest<any>, token: string) {    return request.clone({      setHeaders: {        Authorization: `Bearer ${token}`      }    });  }  private handle401Error(request: HttpRequest<any>, next: HttpHandler,tokens) {    if (!this.isRefreshing) {      this.isRefreshing = true;      this.refreshTokenSubject.next(null);      return this.auth.refreshToken(tokens).pipe(        switchMap((token: any) => {          this.isRefreshing = false;          this.refreshTokenSubject.next(token.token);          this.db.removeAll('token');          this.db.storage.set('token',token);          return next.handle(this.addToken(request, token.token));        }));    } else {      return this.refreshTokenSubject.pipe(        filter(token => token != null),        take(1),        switchMap(jwt => {          return next.handle(this.addToken(request, jwt));        }));    }  }
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

只需在返回處理技巧之前添加返回即可。如果不返回,邏輯就不起作用。

if (error instanceof HttpErrorResponse && error.status === 401) { 
         return this.handle401Error(request, next,token);


查看完整回答
反對(duì) 回復(fù) 2023-03-18
  • 1 回答
  • 0 關(guān)注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)