Uma das melhores formas de armazenar o JWT é via cookies.

Embora o localstorage pareça ser ótimo, ele não tem um recurso muito importante no gerenciamento de cookies: a validade do cookie.

Dizem também as más linguas de que o localstorage é menos exposto do que os cookies, o que torna ele menos seguro, mas não sei dizer até onde isso é verdade.

Outra dica valiosa de segurança, nunca guarde dados sigilozos do usuário nos cookies, apenas o JWT e retorne as informações via um endpoint rest.

Para a parte de "login automático", é legal deixar o cookie com validade de 30 dias, renovando esses 30 dias toda vez que ele acessa o site.

O token gerado pelo JWT, por si só, já é suficiente para ter uma autenticação segura?

Bastaria decodificar, verificar o id, data de expiração e, estando certos, conceder o acesso aos recursos restritos?

Ou teria mais alguma outra camada de segurança?

Muito obrigado pela respostas, você poderia me indicar um vídeo sobre? Me ajudaria muito

Você está utilizando algum framework em JS ou JS puro?
Estou usando express do Nodejs e irei utilizar como front o React
Acho que esse vídeo pode ajudar: https://www.youtube.com/watch?v=nI8PYZNFtac
Muito obrigado por sua ajuda.

top! vou pegar essa dica também kakaka