Подпись не содержит полезной нагрузки. Подпись может быть такой же простой, как код аутентификации сообщения (HMA C) ha sh (SHA256) jwt. Итак, если вы отправили только подпись, это будет работать как простой старый идентификатор сеанса, и серверу все равно придется сохранять состояние, что сводит на нет любые преимущества jwt.
Вы правы, jwt по умолчанию не зашифрован. Несмотря на то, что он закодирован с помощью base64, с точки зрения безопасности это просто текст и не должен содержать конфиденциальную (секретную) информацию. Единственная защита, которую обеспечивает подпись, заключается в том, что когда сервер получает ее обратно, он может убедиться, проверив подпись, что информация в jwt не была изменена на клиенте.
Незашифрованный токен позволяет клиенту чтобы проверить его содержимое и выяснить, например, время истечения срока действия, когда он должен будет получить новый токен, или идентификатор пользователя, вошедшего в систему. Пользователь, у которого есть jwt, в любом случае будет иметь такую информацию, а другие не должны иметь jwt, потому что они могут использовать его для аутентификации, чтобы выдать себя за пользователя.
Однако при особых обстоятельствах вы можете по-прежнему хотите включить конфиденциальную информацию (ie. секреты), которую вы хотите получить обратно на сервер, но не хотите раскрывать клиенту. Для этого вы можете использовать зашифрованный файл jwt (jwe). Недостатком является то, что этот токен будет непрозрачным для клиента, и вам, вероятно, придется реализовать конечные точки приложения для получения всей необходимой информации.