When I was trying to decode the 2nd part of a JWT token, which should be a base64 encoded string, I found several characters missing in the end:
echo "eyJ0ZW5hbnRfaWQiOiJzdXBlcmNoYXJnaW5nIiwiYXVkIjoiIiwidmVyc2lvbiI6MH0" | base64 -D
{"tenant_id":"supercharging","aud":"","version":
The correct base64 encoded string should be:
echo "eyJ0ZW5hbnRfaWQiOiJzdXBlcmNoYXJnaW5nIiwiYXVkIjoiIiwidmVyc2lvbiI6MH0K" |
base64 -D
{"tenant_id":"supercharging","aud":"","version":0}
So I tried to paste it in the debugger https://jwt.io/, for example:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiJzdXBlcmNoYXJnaW5nIiwiYXVkIjoiIiwidmVyc2lvbiI6MH0.oxpfv0W9GYjt2QlG4lqMcoRYdlBTg9_YF6ITGRrxBAQ
it's a valid JWT token, and I also tried:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiJzdXBlcmNoYXJnaW5nIiwiYXVkIjoiIiwidmVyc2lvbiI6MH0K.oxpfv0W9GYjt2QlG4lqMcoRYdlBTg9_YF6ITGRrxBAQ
it's also a valid JWT token. Is it a bug with jwt.io or am I missing something here?