Yes its common to attach the token to the header. It looks something like this:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Sure somebody could go into your computer and check the token. But usually your computer has some kind of authentication aswell to log in. Same with phone, almost everybody has some kind of password.
A good way to store tokens are httpOnly cookies. With this flag javascript cannot read the cookie on the client side. It makes XSS attacks harder to get the token.
The problem about JWT are that they have a expire date and they are valid till they reach the date. Lets say you log in into a webpage, and get some token. Now somebody steal your token. You log off and erase the token form your device.
The problem is now that the token is stolen and still valid so the attacker can use it.
At this point the attaker is technically you because he has the token with the saved data in it.
What you can do here is to create a blacklist. If you log out you put your token into the blacklist. Whenever somebody try to access something that requires a token, you first check if that token is inside the blacklist, if it is you reject the request.
For a blacklist i would recommend a cache like redis for fast access.