2017-02-05 13 views
0

Когда я расшифровать мой маркер JWT я вижу в полезной нагрузкеКак токен JWT expiresIn работает в перьях?

{ 
    "exp": 1494105589 
} 

Что это означает значение? Документы говорят, что значение по умолчанию JWT expiresIn равно «1d», но это не похоже на 1 день после создания токена и даже не на 1 день в мс (1000 * 60 * 60 * 24). И самое плохое: это значение не сильно изменилось, когда я установил «expiresIn»: «90d» в моей конфигурации. Может ли кто-нибудь объяснить это?

ответ

2

Это временная метка unix, считая секунды с 1 января 1970 года 00:00 UTC. Существует несколько веб-сайтов, которые помогут вам преобразовать значение, например. этот: http://www.unixtimestamp.com/index.php Для вашей метки это говорит 05/06/2017 @ 9:19 pm (UTC), поэтому ваш токен действителен в течение 5 месяцев.

https://tools.ietf.org/html/rfc7519#section-4.1.4 объясняет, что цифровая дата используется для п ехр (а также для НСБ (не раньше) и IAT (выдается в) претензий)

https://tools.ietf.org/html/rfc7519#section-2 определяет числовой дату:

Числовое значение JSON, представляющее количество секунд с 1970-01-01T00: 00: 00Z UTC до указанной даты/времени UTC, игнорируя секунды прыжка.

рядом, что вы сказали

И самое худшее: это значение не изменилось, когда я установил «expiresIn»: «90D» в моей конфигурации.

когда вы получили маркер, он пришел в структуру, как это:

{"access_token": "eyJhbGciOiJ...", "token_type": "bearer", "expires_in": 86399 } 

и если да, то expires_in показать правильное значение?

+0

Хорошо. Моя проблема заключалась в том, что я не знал, что числовая дата - это число ** секунд **, а не миллисекунды. Теперь все ясно. – Alendorff