Ho visto in tutti i blog e gli articoli che ci sono due modi per gestire JWTtokens
, metterli all'interno di localStorage
che sono stati sottoposti per XSS
all'attacco o metterli all'interno di Cookies
e impostare httpOnly
e secure
flags per evitare XSS
.
Utilizzo di localStorage
Per ogni richiesta al server estrai token
di localStorage
e aggiungilo manualmente a Authorization : Bearer <Token>
.
Utilizzo dei cookie
Viene gestito lato server dal momento che non sarà accessibile da JS
lato client, quello che fai è res.cookies(token)
, e verrà inviato automaticamente per ogni chiamata successiva a differenza di localStorage
Ma ultimamente ho visto alcuni sviluppatori semplicemente inserire il token nelle intestazioni usando res.headers('x-auth', token)
.
- È un terzo modo per gestire JWT?
- L'intestazione di X-Auth impostata automaticamente per ogni richiesta successiva al server come i cookie o devi impostarla manualmente (come nel caso di localStorage)?
- I token nell'intestazione X-Auth non sono accessibili da JS e protetti come i cookie?
- qual è la differenza tra farlo a modo tuo res.header ('X-auth') e res.cookie (token)?
-
Infine qual è il modo migliore per farlo se la mia API viene utilizzata dall'app Web ReactJS e dall'applicazione mobile reattiva?
Grazie