Biblioteca-de-Bolso / backend

Backend do projeto Biblioteca de Bolso - API escrita em Nodejs
https://bibliotecadebolso.herokuapp.com/
0 stars 0 forks source link

Documentação diz que rota de refreshToken precisa de accessToken #84

Closed SamuelLimaCap closed 2 years ago

SamuelLimaCap commented 2 years ago

image

Se isso for verdade então o refreshToken nunca será usado pois o acessToken expirado não deixará a requisição passar

rhenandias commented 2 years ago

Esse comportamento não ocorre, não é um bug. No middleware de autenticação são descritas duas rotas, uma protectedRoute e outra refreshTokenRoute.

A primeira é um middleware utilizado em todas as rotas em que é necessário a autenticação, todas as rotas de interação. A segunda é utilizada justamente na rota de refresh token, onde a validação de JWT expirado é permitida.

image

Foi feito dessa maneira, pois o refresh token não carrega nenhum metadado referente ao utilizador, ele é apenas um hash. O refresh token é armazenado no banco de dados, mas para validar a origem do refresh token é necessário ter os metadados do token que gerou o refresh token.

O refresh token nessa rota não é utilizado para validação de validade, e sim validação de metadados do portador do refresh token.