Lo que he visto en todos los blogs y artículos es que hay dos maneras de manejar JWTtokens
, ponerlos dentro de localStorage
que están sujetos al ataque XSS
o ponerlos dentro de Cookies
y establecer httpOnly
y secure
flags para evitar XSS
.
Utilizando localStorage
Por cada solicitud al servidor, se extrae el token
del localStorage
y se agrega manualmente a Authorization : Bearer <Token>
.
Uso de cookies
El lado del servidor se maneja ya que no se accederá al lado del cliente JS
, lo que usted hace es res.cookies(token)
, y se enviará automáticamente a cada llamada subsiguiente, a diferencia de localStorage
Pero últimamente vi a algunos desarrolladores que simplemente pusieron el token en los encabezados usando res.headers('x-auth', token)
.
- ¿Es una tercera forma de manejar JWT?
- ¿El encabezado X-Auth se establecerá para cada solicitud subsiguiente al servidor, como las cookies automáticamente o tendrá que configurarlo manualmente (como en el caso del almacenamiento local)?
- ¿JS no puede acceder a los tokens en el encabezado de X-Auth y son seguros como cookies?
- ¿Cuál es la diferencia entre hacerlo a su manera res.header ('X-auth') y res.cookie (token)?
-
Finalmente, ¿cuál es la mejor manera de hacerlo si la aplicación web ReactJS y la aplicación móvil nativa de reactivos consumen mi API?
Gracias