Итак, я понимаю, что JWT подписывается сервером с закрытым ключом, и его законность проверяется путем сравнения расшифрованной подписи открытого ключа с заголовком + полезной нагрузкой как сервером, так и клиентом:
The tokens are signed by one party's private key (usually the server's), so that both parties (the other already being, by some suitable and trustworthy means, in possession of the corresponding public key) are able to verify that the token is legitimate.1
Мне просто интересно, зачем клиенту проверять подлинность JWT? Я понимаю, что тот же механизм используется для SSL, и в этом случае проверка на стороне клиента имеет для меня смысл, поскольку сертификат содержит открытый ключ, используемый клиентом для шифрования первоначального рукопожатия. Но мне трудно понять, какую пользу общественная проверяемость приносит в случае JWT. Если бы JWT был нелегитимным, он все равно не работал бы на сервере, а клиент не делал ничего особенного, кроме прикрепления его к запросу.
Не может ли просто хеширование с некоторой частной солью на сервере удовлетворить цель, которую он выполняет? Сервер проверяет, хешируя полезную нагрузку с той же солью и сравнивая с подписью. В этом случае только сервер может проверить, но что с того?

So my understanding is that a JWT is signed by the server with a private key and its legitimacy verified by comparing the public key decrypted signature against the header + payload by both/either the server and client:
Это неполный. JWT может быть подписан закрытым ключом пары ключей (например, RSA) или симметричным ключом (например, HMAC). В этом случае один и тот же секретный ключ используется для подписи и проверки токена.
I'm just wondering what need is there for the client to verify the authenticity of the JWT?
Когда токен подписан парой асимметричных ключей, ожидается, что клиент проверяет токен. Используя симметричный ключ, он известен только стороне-эмитенту, поэтому клиент не может его проверить.
Смотрите мой ответ здесь: Когда использовать RS256 для JWT?
I understand the same mechanism is used for SSL, in which case client-side verification makes sense to me as the certificate contains the public key used by the client to encrypt the initial handshake
Некоторые данные, используемые в рукопожатии, имеют цифровую подпись (не зашифрованы) сервером с его закрытым ключом и проверяются клиентом.
If the JWT were illegitimate, it'd fail on the server anyway, and the client isn't doing anything special aside from tacking it onto the request.
Нет, если сервер проверки не совпадает с сервером выдачи (см. Ссылку выше еще раз).
Предположим, токен был выпущен третьей стороной (например, очками или facebook) в результате процесса аутентификации oauth2. Он может содержать сведения о подключенном пользователе, и он был предоставлен вашему серверу с помощью перенаправления, поэтому вы не можете доверять вызывающей стороне. Вы должны убедиться, что токен был выпущен ожидаемой стороной.