Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

400
Visualizações
Estrategia de token de actualización de JWT

Veo en un blog ( aquí ) sobre la autenticación en React con JWT , esta configuración: el vencimiento del token de acceso es de 15 minutos, el vencimiento del token de actualización es de 1 mes; cada 10 minutos, el cliente llama al punto final /refreshToken para verificar si refreshToken sigue siendo válido (de lo contrario, se muestra al usuario la pantalla de inicio de sesión).

En el servidor, el extremo /refreshToken verifica correctamente que el token de actualización no haya caducado, que el usuario con la identificación en la carga útil del token de actualización aún exista y sea válido (es decir, el token de actualización pasado está presente en su matriz de tokens de actualización). Si todo está bien, se genera un nuevo token de acceso y se devuelve con la respuesta.

Hasta aquí todo bien. Pero , antes de devolver la respuesta, también se genera un nuevo refreshToken y se reemplaza por el anterior en la matriz de refrescos de los usuarios... Creo que esta estrategia es defectuosa, ya que de esta manera el usuario nunca verá que su inicio de sesión caduque, incluso después el token de actualización (un mes en este ejemplo) estará atrasado...

Hice algunas pruebas (reduciendo el valor de 1 mes a 30 minutos) y, efectivamente, la autorización del usuario nunca caduca... Forzar el cierre de sesión del usuario eliminando su matriz refreshTokens obviamente funciona bien, pero esperaría un cierre de sesión cuando se actualice el token caduca por antigüedad.

Pregunto si mi comprensión es correcta (el punto final de refreshToken en el servidor no debe actualizar el token de actualización, sino solo el token de acceso), o si me olvido de algo.

ACTUALIZAR después del comentario de @Ghero: veo tu punto... Pero, ¿por qué actualizar un token si no para actualizar su vencimiento?
Sin embargo, el código del blog utilizado para renovar el token de actualización:

 const jwt = require("jsonwebtoken"); exports.getRefreshToken = (user) => { const refreshToken = jwt.sign(user, process.env.REFRESH_TOKEN_SECRET, { expiresIn: eval(process.env.REFRESH_TOKEN_EXPIRY), }); return refreshToken; }; // REFRESH_TOKEN_EXPIRY is set to 30 days

Parece que siempre pospone la fecha de vencimiento 30 días en el futuro. De esta manera nunca caducará...

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Reemplazar el token de actualización en cada uso es una mejor práctica actual.

Tener un token de actualización de un solo uso significa que si el token de actualización es robado y usado más de una vez (por usted y el pirata informático), el servicio de token puede detectarlo y cerrar la sesión del usuario automáticamente, protegiéndolo de ataques.

Hay un tiempo máximo en el que el token de actualización es válido, por ejemplo, 30 días, pero eso también suele ser algo que puede configurar. Existen diferentes estrategias de vida útil del token de actualización, según el servicio que utilice. La siguiente imagen muestra cómo IdentityServer trata con tokens de actualización: ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda