Jwt Aurelia刷新访问令牌并重新发送失败的请求

Jwt Aurelia刷新访问令牌并重新发送失败的请求,jwt,aurelia,refresh-token,Jwt,Aurelia,Refresh Token,我正在使用Aurelia和JWT身份验证,并希望在访问令牌过期时重新刷新它。刷新访问令牌后,应重新执行失败的请求。如果刷新令牌也已过期,则应将用户导航到登录页面 我目前在main.ts .withInterceptor({ request(request) { console.log(`Requesting ${request.method} ${request.url}`); return request; },

我正在使用Aurelia和JWT身份验证,并希望在访问令牌过期时重新刷新它。刷新访问令牌后,应重新执行失败的请求。如果刷新令牌也已过期,则应将用户导航到登录页面

我目前在
main.ts

.withInterceptor({
        request(request) {
          console.log(`Requesting ${request.method} ${request.url}`);
          return request;
        },
        response(response): Response {
          if(response.status == 401 && !localStorage.getItem('isRefreshingToken')){

            if(getRefreshToken()){
              localStorage.setItem('isRefreshingToken', "true");
              let authService = new AuthService(http);

              authService.refreshToken().then(success => {
                localStorage.removeItem('isRefreshingToken');
                console.log("refresh", success);

                //re-execute failed request

              }).catch(failed => {
                localStorage.removeItem('isRefreshingToken');

                //refresh_token is also expired so go to login page

              });
            } else {
              //refresh_token is also expired so go to login page
            }
          }
          console.log(`Received ${response.status} ${response.url}`);
          return response;
        }
      });
刷新部分可以工作,但我不知道如何在拦截器中重定向(这可能吗?/应该这样做吗?)。还有如何重新执行失败的请求


我尝试了Google和Aurelia文档,但没有得到我想要的答案。有人能给我指出正确的方向吗?

这是一次公关合并。您应该能够在fetch client上使用重试功能,可以试试吗?@bigopon这看起来很有希望,谢谢。如果它真的适合我,我会很快报告的。