Какими должны быть значения iat и exp для JWT? - PullRequest
1 голос
/ 12 февраля 2020

Я работаю с API, который заявляет об использовании JWT в заголовке авторизации для каждого запроса и говорит, что exp и iat не являются обязательными. Как определить, какие значения следует использовать для iat и exp? Это имеет значение? Что мешает мне установить время iat в далекое прошлое и время exp на то, что я хочу?

RFC7519 говорит о iat

«iat» (выпущено в) В претензии указывается время, когда был выпущен JWT. Эта претензия может быть использована для определения возраста JWT. Его значение ДОЛЖНО быть числом, содержащим значение NumericDate. Использование этой заявки НЕОБЯЗАТЕЛЬНО.

и exp

Заявка "exp" (время истечения) определяет время истечения, после которого JWT НЕ ДОЛЖЕН приниматься. для обработки. Обработка претензии "exp" требует, чтобы текущая дата / время ДОЛЖНА быть до даты / времени истечения срока, указанного в претензии "exp".

1 Ответ

0 голосов
/ 28 февраля 2020

Я подумал, что отвечу на этот вопрос, если кто-то еще столкнется с какой-то расплывчатой ​​документацией, в которой это указано.

С моей стороны мне фактически потребовалось создать JWT после предоставления открытого ключа c для сервер. В каждом из моих запросов я создавал заголовок, полезную нагрузку и подпись и отправлял их как авторизацию.

Короткий ответ: я мог бы установить для iss и exp любое значение, какое бы я ни хотел: не было никакого способ проверить это на конце этого сервера. Единственная причина, по которой он не должен устанавливаться таким образом, чтобы токен никогда не истекал при использовании смешного значения exp, заключается в соображениях безопасности.

...