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