Estoy después de leer " enlace " y " enlace " (entre otros :-)) y lo que me gustaría evitar es usar a ciegas todas las medidas de seguridad que se puede pensar simplemente para sentirse más seguro. Algo como el hash de un hash "por si acaso".
Lo que tengo ahora (el 3er día de pasar por el ejemplo MEAN) - Tengo el token JWT (id del usuario) + la fecha de vencimiento. Así que el token no vivirá para siempre. Este token se almacena como una cookie para obtener la función "Recordarme".
Lo que me molesta aquí es la falta de datos aleatorios que el servidor agrega a la mezcla, por lo que es seguro, no seguro, pero es una configuración muy determinista (consulte el segundo artículo que vinculé).
Así que me pregunto si el token JWT es menos seguro que el token de sesión "clásico". Estoy pensando en tal configuración:
- el usuario inicia sesión, el token JWT se crea como antes, el token de la sesión también (id + número aleatorio), el hash del número aleatorio se almacena en la base de datos (la fecha de caducidad se establece, por supuesto)
- para trabajo normal Se usa token JWT (no se usa para "recordarme")
- el token de sesión se usa para "recordarme", se almacena como una cookie
Y cuando el usuario regresa, "recordarme" se activa, en lugar de iniciar sesión, se utiliza una cookie con el token de sesión para autorizar al usuario, en caso de éxito, se crea JWT.
Entonces habría tres "capas":
- inicio de sesión + contraseña: uso infinito en el tiempo
- token de sesión ("recordarme"): uso a largo plazo
- token JWT: uso a corto plazo, solo para el trabajo actual
Mi pregunta es: ¿es mi primer enfoque con JWT único menos seguro o no? O, en otras palabras, ¿está agregando "token de sesión" como describí anteriormente? ¿Hice esta configuración más segura o solo hice más desorden? :-)