При изучении технологии JWT возник вопрос: зачем в состав токена входит payload в открытом виде? Я вижу в этом логику только, если шифрование симметричное, и серверу приходится отправлять запрос на подтверждение подписи на другой сервер. Но если шифрование ассиметричное или серверу известный приватный ключ симметричного шифрования, зачем передавать эти данные в открытом виде? Разве это не "пустое" увеличение длинны токена?
Отерытый payload нужен для двух вещей:
1. Чтобы клиент мог получить всякую информацию о токене не делая запросы к серверу.
2. Чтобы сервер мог работать не делая лишние запросы к серверу авторизации или к БД.
ward_ua, а зачем?
1. Шифрование, особенно ассиметричное - это медленнее, чем HMAC
2. Для работы JWT или чего-то похожего. Подписывать/Шифровать должен сервер авторизации, а потребитель (сервер приложения) должен уметь её быстро проверить.
3. При использовании любого шифрования, клиент (например мобильное приложение или сайт), должны будут либо хранить срок жизни отдельно от токена, либо делать постоянные запросы для проверки актуальности.
При ассиметричном шифровании (когда сервер шифрует, а любой расшифровывает) - клиенту всё равно нужно где-то брать открытый ключ, и не во всех сценариях это применимо.