Não seria mais conveniente o back-end controlar essa renovacao, digo toda vez que o usuário fizer um acesso dentro do prazo valido para o access-token ele estende o prazo de validade para contar do momento desse ultimo acesso? Assim o access-token só expira realmente quando usuário parar de mexer/nao fazer nenhum requisicao na aplicacao pelo prazo definido para o access-token evitando criacao de outro token (refresh-token). A atualizacao da data de expiracao poderia ser feita via middleware. Esse mecanismo refresh-token parece muito burocratico e trabalhoso, o que mais me desagradou é que o front-end também deverá ficar responsavel por questões de autenticação (no meu ver o back-end deveria ser o único a responder por essa tarefa)