Проблемы безопасности, которые у вас есть, будут применяться в любом случае, когда вам необходимо сохранить токен.
Рекомендуется использовать httpOnly cook ie, этот Cook ie не может быть доступ из javascript, и вам не нужно беспокоиться об отправке токена в каждом запросе. Этот повар ie является текущей «безопасной» опцией для поддержания сеанса в веб-приложении.
В другом стороны, вы все еще можете использовать JWT в localStorage, но да, в случае кражи XSS, которую можно украсть, но давайте поговорим о безопасности, если кто-то может внедрить код JS, он все равно может делать все с этим сеансом, Единственное отличие в случае httpOnly cook ie состоит в том, что он не может сохранить учетные данные для последующего использования или использовать их с другого компьютера (конечно, это усложняет хакеру все, но вы все равно можете делать все).
JWT необходим в том случае, если вы используете федеративную аутентификацию, и даже если кража JWT вызвана тем, что третья сторона уже имеет доступ к JS среде выполнения, , поэтому важно не «украсть токен», не разрешить запуск внешнего кода в вашем приложении.