Вы тот, кто выбирает, где его хранить: после успешной аутентификации JWT должен быть отправлен клиенту и сохранен на стороне клиента, поэтому, как вы сказали, вы должны выбрать одно из трех решений:
1- LocalStorage
2- Cook ie: уязвим для атак csrf.
3- SessionStorage: этот параметр исключен, потому что как только ваш пользователь закроет свое окно, данные сохраненные здесь, будут потеряны, если вы не хотите этого поведения.
После того, как ваш токен был сохранен, вы снова можете выбрать способ его отправки:
1- Отправить его в заголовке (авторизация) например,
2- Отправьте его прямо в теле запроса (например, в JSON).
Ваш бэкэнд должен знать, как его извлекать из заголовка / тела, ваш выбор снова.
Имейте в виду, что вам нужно отправлять его при каждом запросе, который вы делаете в защищенную область, таким образом вы выполняете аутентификацию без сохранения состояния каждый раз, когда ваш бэкэнд получает запрос в защищенную область.