1
respuesta

[Duda] autentificacion

hola un pregunta he visto que muchas aplicaciones lo que generan es la famosa cookie en donde al abrir sesion se genera, obvio encriptada y esta activa mientras se esta en sesion y algunas veces se pone tiempo de vida a esta cookie y se destruye. para tener seguridad sobre la sesion. que diferencia habrai con este metodo d el spring security? m as robustes? mayor nivel de encriptacion?

1 respuesta

Hola Fernando,

Muy buena pregunta. La autenticación basada en cookies y la autenticación basada en tokens (como Spring Security) son dos métodos comunes para manejar la autenticación en aplicaciones web, pero con diferencias significativas.

La autenticación basada en cookies depende del estado del servidor y las cookies se almacenan en el navegador del cliente. Cuando un usuario se autentica, el servidor crea una sesión que se almacena en una base de datos y una cookie con la ID de la sesión se almacena en el navegador del usuario. En cada solicitud posterior, el servidor verifica la ID de la sesión en la cookie para autenticar al usuario.

Por otro lado, Spring Security utiliza autenticación basada en tokens. Cuando un usuario se autentica, el servidor crea un token (que puede contener información como la ID del usuario y los roles de usuario) y lo envía al cliente. El cliente luego envía este token en la cabecera de cada solicitud posterior. El servidor verifica el token para autenticar al usuario y no necesita mantener un registro de sesiones individuales. Esto lo hace ideal para aplicaciones sin estado (stateless), como las API REST.

Ambos métodos tienen sus ventajas y desventajas y la elección entre uno y otro depende de tus necesidades específicas. Sin embargo, hay algunas ventajas clave de la autenticación basada en tokens que la hacen atractiva para muchas aplicaciones:

  1. Escalabilidad: Dado que el servidor no necesita mantener un registro de sesiones, las aplicaciones basadas en tokens son más fáciles de escalar.
  2. Desacoplamiento: Los tokens son autónomos y contienen toda la información necesaria para autenticar al usuario, lo que significa que tu aplicación no está atada a un sistema de autenticación específico.
  3. Seguridad: Los tokens se pueden diseñar para ser válidos por un período de tiempo específico, lo que reduce el riesgo de ataques.

En el curso, cuando se implementa Spring Security, se está utilizando autenticación basada en tokens. Como mencionó el instructor, este tipo de autenticación es ideal para una API REST, ya que es sin estado y permite autenticar cada solicitud individualmente.

Espero que esto aclare la diferencia entre estos dos métodos de autenticación. Si tienes más preguntas, no dudes en preguntar.

Espero haber ayudado y buenos estudios!