Validating JWTs: Signature, Expiry, and Claims