Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
327 views
in Technique[技术] by (71.8m points)

javascript - Angular - Unable to wait for observable subscribe to finish to execute rest of the code in http interceptor


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
 let token = localStorage.getItem('token');
 // if token is not valid or not set
  if ((this.jwtHelper.isTokenExpired(token) || token === null)) {
    if (token_refresh !== null) {
      // if token_refresh exists and is valid
      this.authService.refreshToken(token_refresh).subscribe(
        response => {
          localStorage.setItem('token', response.token);
          token = response.token;
          request = request.clone({
             setHeaders: {
                Authorization: `Bearer ${token}`
             }
          });
        }
      );
    } else {
      // if no token_refresh exists or is expired
      this.router.navigate(['/register']);
    }
  } else {
     request = request.clone({
       setHeaders: {
         Authorization: `Bearer ${token}`
     }
  });
  }

You can an else block to execute if you don't need to refresh the token, and add that code block again after you get a fresh token.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...