Show! E adicionaria também que você pode assinar o Cookie com uma flag HttpOnly
e isto vai fazer com que ele fique invisível para o JavaScript que está no client-side, ou seja, mesmo que seja injetado um iscript malicioso por XSS dentro da página, ele não vai conseguir ler este Cookie, mas irá conseguir ler o LocalStorage.
Dessa eu não sabia Filipe, e é uma informação muito valiosa, pois geralmente utilizo o Cookie para autenticar o token do usuário dentro de um ServerSideProps, logo, posso deixá-lo disponível apenas no lado do servidor!
Correto, essa é a ideia! Então apesar de que o Cookie é carregado até ao Client (para poder voltar em uma request futura para o Server), assinar com essa flag faz este dado ficar muito mais seguro do que colocar ele num LocalStorage.
E por curiosidade: isso gerou uma dificuldade do Client Web do TabNews para saber se o usuário está autenticado (e mostrar o menu no canto superior direito), pois não dá para saber se o Cookie de sessão existe 😅 então fazemos uma request nova para o endpoint /api/v1/user
para saber se o usuário está de fato logado e salvamos em LocalStorage só o que não são dados sensíveis, como username
, tabcoins
, etc. 🤝
Muito interessante!!