¿Cómo es que la autenticación basada en token no tiene estado?

2

Comprendo que los tokens están firmados por el servidor y cada vez que un cliente realiza una solicitud con el token, el servidor lo descifra para obtener la información del usuario.

Un par de problemas que veo acerca de llamar a este apátrida:

1) ¿Hay una clave privada para todos los usuarios? Si es diferente, mantendrá todas las claves privadas en lugar de la información de la sesión.

2) Una vez que el servidor descifra el token, digamos que el mensaje descifrado es un blob JSON con campos como id,username en él. ¿Cómo sabrá el servidor si o no id, username existe en su plataforma sin mantener eso en primer lugar?

    
pregunta Abhibandu Kafle 25.01.2018 - 20:11
fuente

1 respuesta

4

Solo hay una clave privada que se usa para firmar todos los tokens. Así que la clave en sí no es un estado del servidor.

Sí, por supuesto que necesita una base de datos con datos de usuario, como ID y nombre de usuario. Sin embargo, tener una base de datos para almacenar datos permanentes no lo convierte en un estado. Cuando hablamos de servidores sin estado, queremos decir que no hay estado de sesión almacenado en el servidor. Pero, por supuesto, todavía hay un montón de datos sobre usuarios, publicaciones de blog, productos o lo que sea.

Además, dado que el token está firmado por el servidor, no es necesario verificar con la base de datos que la información del usuario es correcta en cada solicitud. El servidor se asegura de que los datos son correctos cuando firma el token, y después de eso la firma lo verifica.

    
respondido por el Anders 25.01.2018 - 20:25
fuente

Lea otras preguntas en las etiquetas