Да, его обычно прикрепляют к заголовку. Это выглядит примерно так:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Конечно, кто-то мог go войти в ваш компьютер и проверить токен. Но обычно на вашем компьютере есть какая-то аутентификация, а также для входа в систему. То же самое и с телефоном, почти у всех есть какой-то пароль.
Хорошим способом хранения токенов являются httpOnly cookie. С этим флагом javascript не может прочитать повар ie на стороне клиента. Это затрудняет получение токена при атаках XSS.
Проблема с JWT заключается в том, что у них есть срок действия, и они действительны до тех пор, пока не достигнут этой даты. Допустим, вы авторизуетесь на веб-странице и получаете токен. Теперь кто-нибудь украдет ваш жетон. Вы выходите из системы и стираете токен со своего устройства.
Проблема в том, что токен украден и все еще действителен, чтобы злоумышленник мог его использовать.
На этом этапе атакующий технически является вами потому что у него есть токен с сохраненными данными.
Здесь вы можете создать черный список. Если вы выходите из системы, вы помещаете свой токен в черный список. Всякий раз, когда кто-то пытается получить доступ к чему-то, для чего требуется токен, вы сначала проверяете, находится ли этот токен в черном списке, если это вы отклоняете запрос.
Для черного списка я бы порекомендовал кеш, например redis, для быстрого доступа.