Практичний приклад
Якщо exp менше за поточний Unix-час, токен уже прострочений, навіть коли його заголовок і дані декодуються без помилок.
Встав JWT токен нижче, щоб розкодувати header і payload. Декодування не перевіряє підпис.
Примітка: цей інструмент лише декодує. Він не валідує і не перевіряє підпис.
JWT (JSON Web Token) — компактний формат токена для автентифікації та авторизації.
JWT зазвичай має три частини: заголовок, дані та підпис. Цей інструмент локально декодує заголовок і дані токена, але не перевіряє підпис.
Дізнайся workflow за цим інструментом і що перевіряти далі.
Безпечний процес перевірки структури токена, claims, підпису та подальшої авторизації.
Процес, що запобігає помилкам з алфавітом і байтами та не плутає читабельні твердження JWT із перевіреною особою.
Декодування JWT допомагає перевірити поля токена та строк дії, але не доводить, що сервер довіряє токену або прийме його.
Перевірте exp, iat, nbf, часовий пояс і розбіжність системного часу перед налагодженням сесій або оновлення токена.
Переконайтеся, що aud, iss, tenant, client_id і середовище відповідають сервісу, який перевіряє токен.
Перевірте scopes, roles, permissions і feature flags, якщо запит автентифікований, але доступ усе одно заборонено.
Декодування не перевіряє підпис. Не вважайте неперевірений токен доказом особи користувача.
Якщо exp менше за поточний Unix-час, токен уже прострочений, навіть коли його заголовок і дані декодуються без помилок.
Декодований токен може містити будь-які підроблені поля. Без перевірки підпису очікуваним алгоритмом і ключем особу не підтверджено.
Я перевіряю iss, aud, exp, nbf і розбіжність годинника разом: більшість проблем JWT спричинені невідповідністю контракту, а не декодуванням.
Можливо, тобі також стануть у пригоді ці інструменти.