Vai depender muito do seu backend também, utilizando um sistema de access token e refresh token, não há problema algum em armazenar em um local storage.
Se o token vazar, é só esperar um tempo que ele expira.
E se vazar com certeza foi um erro do usuário, se você armazena no navegador do cara, a responsabilidade se torna dele.
Em resposta a LocalStorage, Cookies e SessionStorage
1
1
Na pior das hipóteses uma boa prática seria criar uma 'lista negra' no seu backend onde todos os tokens que estiverem contidas nela, serão considerados inválidos. Essa é uma estratégia interessante para quando tiver algum tipo de acesso malicioso