==== Verify the signature of your tokens

Resolving a vulnerability concerning the validation of JWT token signatures is
mainly about incorporating a critical step into your process: validating the
signature every time a token is decoded. Just having a signed token using a
secure algorithm is not enough. If you are not validating signatures, they are
not serving their purpose.

Every time your application receives a JWT, it needs to decode the token to
extract the information contained within. It is during this decoding process
that the signature of the JWT should also be checked.

To resolve the issue follow these instructions:

1. Use framework-specific functions for signature verification: Most programming
frameworks that support JWTs provide specific functions to not only decode a
token but also validate its signature simultaneously. Make sure to use these
functions when handling incoming tokens.

2. Handle invalid signatures appropriately: If a JWT's signature does not
validate correctly, it means the token is not trustworthy, indicating potential
tampering. The action to take on encountering an invalid token should be denying
the request carrying it and logging the event for further investigation.

3. Incorporate signature validation in your tests: When you are writing tests
for your application, include tests that check the signature validation
functionality. This can help you catch any instances where signature
verification might be unintentionally skipped or bypassed.

By following these practices, you can ensure the security of your application's
JWT handling process, making it resistant to attacks that rely on tampering with
tokens. Validation of the signature needs to be an integral and non-negotiable
part of your token handling process.

