Aurelia обновляет sh токен доступа и повторно отправляет неудачный запрос - PullRequest
4 голосов
/ 24 февраля 2020

Я использую Aurelia с аутентификацией JWT и хочу сослаться на sh токен доступа, когда он истек. Когда токен доступа был обновлен, неудавшийся запрос должен быть выполнен повторно. Если срок действия маркера refre sh также истек, пользователь должен перейти на страницу входа в систему.

В настоящее время он используется в качестве перехватчика в 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, но не получил ответы, которые я ищу. Может ли кто-нибудь указать мне правильное направление?

...