Angular2 - Como lidar melhor com o token de autenticação expirado?

Estou usando o Angular 2.1.2.

Eu tenho um token de autenticação (usando angular2-jwt) e, se ele expirar, minha chamada webApi falhará com um erro 401. Estou procurando uma solução em que o usuário não perca nenhum dado de entrada.

Eu posso pegar esse 401 e abrir um modal com o login. O usuário então efetua login, o modal desaparece e eles vêem sua tela de entrada. No entanto, as solicitações com falha estão mostrando erros, portanto, preciso reprocessá-las. Se fosse um roteador, os dados iniciais não foram carregados.

Eu poderia recarregar a página, mas se eu router.navigate para a mesma página, ele não parece realmente recarregar a página. Não quero recarregar a página inteira no aplicativo de página única. Existe uma maneira de forçar a execução do router.navigate, mesmo que seja a página atual?

Voltar a navegar ainda é um problema, porque eu perderia novos dados de entrada que não foram salvos.

Idealmente, a solicitação apenas 'pausaria' até que o usuário efetue login no modal. Eu não encontrei uma maneira de implementar isso.

Alguma ideia? Existe uma prática recomendada?

questionAnswers(5)

yourAnswerToTheQuestion