Soy relativamente nuevo en jwt.io y autenticación y estoy usando JWT.io de la siguiente manera.
Lado del servidor
Una vez que el usuario inicia sesión, genero un token userid
incrustado en el interior y se lo devuelvo al usuario en el cuerpo del mensaje
Client Side Browser / JS Estoy almacenando el token en localStorage y para cada solicitud posterior, paso el token en los encabezados.
Authorization: Basic someEncryptedValue
También he usado
X-Auth-Token: someEncryptedValue
¿Podría usar esto en una cookie?
Luego, en el lado del servidor, verifico el token contra el secreto, verifico el vencimiento, obtengo la identificación del token y luego atiendo la solicitud.
¿Está todo correcto en este flujo de trabajo?
authentication
session
authorization
cookies
usuario2727195
fuente
fuente
Respuestas:
Su flujo de trabajo es correcto (suponiendo que esté usando HTTPS), y sí, podría almacenar su token en una Cookie en lugar de pasarlo al encabezado de autorización.
No recomiendo usar OAuth2. Implementar incluso el flujo más simple correctamente agregaría un montón de complejidad a su proceso de inicio de sesión, y me parece que no lo necesita ya que sus partes del "lado del servidor" viven en el mismo dominio.
Si fuera yo, usaría cookies. Seguir esquemas bien entendidos deja menos oportunidades de confusión y significa que el navegador se encarga de enviar y actualizar su cookie (por ejemplo, considere cómo podría manejar las sesiones con un tiempo de espera inactivo)
fuente
Una buena lectura Habla sobre guardar tokens en el almacenamiento local y luego enviarlos de vuelta a través de JavaScript en la solicitud http.
: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
fuente
Todos los navegadores ahora admiten Digest Auth, que es seguro incluso a través de HTTP. Dependiendo de sus requisitos exactos, esto puede ser suficiente.
fuente