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

181
Visualizações
¿Cómo persistir el inicio de sesión del usuario durante un largo período de tiempo en NodeJs?

He creado una aplicación con la pila MERN (Mongo, Express, React y NodeJs). Ahora estoy investigando sobre la construcción de un sistema de autenticación. Hay literalmente montones y montones de tutoriales y videos en los que se construye un sistema en el que el usuario se autentica durante un máximo de, digamos, 24 horas y luego tiene que volver a iniciar sesión. Todos usan jwt o session con algo como express-session . Sin embargo , estoy usando ciertos sitios web en los que básicamente nunca estoy desconectado.

Realmente me gustaría crear un sistema yo mismo en el que el usuario esté autenticado durante al menos 14 a 30 días sin que se le solicite volver a iniciar sesión (idealmente, incluso más tiempo). No puedo encontrar buenos recursos en línea sobre cómo persistir el inicio de sesión del usuario durante largos períodos de tiempo. Soy consciente de que existen importantes compensaciones de seguridad involucradas en la creación de un sistema de este tipo. También soy consciente de que puedo establecer el tiempo de caducidad de un jwt o el maxAge de una cookie de sesión entre 14 y 30 días, pero parece una muy mala idea. Sin embargo, realmente me gustaría aprender y leer más sobre estos métodos de autenticación con inicio de sesión persistente durante largos períodos de tiempo.

¿Alguien podría proporcionar algunos buenos recursos / ideas sobre este tema en particular? ¿Cuáles son algunas cosas que debo tener en cuenta?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Para sesiones de tiempo prolongado, el uso de jwt sin estado puede no ser la mejor idea.

Como requisito crítico serían las invalidaciones de sesión, la detección de robo de tokens, que jwt por sí solo no puede proporcionar. Necesita algunos componentes inteligentes circundantes para toda la configuración.

Los tokens JWT sin estado no se pueden invalidar ni actualizar, e introducirán problemas de tamaño o de seguridad según dónde los almacene. Los tokens Stateful JWT funcionan igual que las cookies de sesión, pero sin las implementaciones probadas y bien revisadas ni la asistencia al cliente.

A menos que trabaje en una aplicación a escala de Reddit, no hay razón para usar tokens JWT como mecanismo de sesión. Solo usa sesiones.

http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/

about 4 years ago · Juan Pablo Isaza Relatório

0

En general, debido a que la seguridad es difícil de implementar correctamente, se recomienda usar un proveedor de OAuth de terceros o al menos una biblioteca bien probada para la autenticación y autorización locales.

Si desea construir su propio sistema, puede implementar un sistema con dos tokens. Un token de autorización y un token de actualización. Establezca la caducidad del token de autenticación en algo corto como una hora y el token de actualización durante el tiempo que desee.

Pase el token de autenticación en todas las solicitudes y valídelo en el back-end. Cuando el token de autenticación caduca, el servidor devuelve un mensaje de token no válido y el cliente debe solicitar un nuevo token de autenticación que pase el token de actualización. El servidor valida el token de actualización y emite un nuevo token de autenticación y actualización para el cliente. Este proceso se repite hasta que caduca el token de actualización.

Si ambos tokens caducan, el usuario debe volver a autenticarse. Cuando un usuario cierra la sesión, debe caducar/eliminar los tokens de autenticación y actualización tanto en el cliente como en el servidor.

Este sistema minimiza la exposición de un token de autenticación capturado al tiempo que permite el acceso del cliente durante períodos de tiempo más prolongados.

Esta es solo una versión aproximada y simplificada de cómo podría funcionar un sistema de este tipo. Deberá idear alguna forma de validar los tokens y realizar un seguimiento de qué tokens pertenecen a qué usuarios.

about 4 years ago · Juan Pablo Isaza 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