У вас есть несколько сомнений по поводу того, как JWT работает в целом, поэтому я предложу краткое введение в их работу.Ваш JWT содержит несколько частей информации, известной как претензий .Обычно они включают в себя что-то вроде следующего:
- имя пользователя
- expiryTime
- level
Чтобы сфокусироваться на вашем конкретном вопросе,expiryTime
(стандартное имя exp
) хранит метку времени истечения срока действия JWT.Первое, что сервер сделает, чтобы убедиться, что входящий JWT откроет его и проверит, что время истечения не прошло.Если для пройдено , сервер немедленно отклонит токен.Таким образом, время истечения используется в качестве привратника для предотвращения устаревания токенов из вашего приложения.
Помимо этого, обычно будет еще один шаг проверки, когда серверу придется выполнить что-то вроде кэша или, возможно,базы данных, чтобы проверить, что JWT на самом деле все еще действует.Для этой проверки в качестве ключа для поиска будет использоваться username
или некоторый другой уникальный идентификатор, соответствующий пользователю.
Я также включил утверждение, которое я назвал level
.Предполагая, что ваше приложение может иметь разные уровни аутентификации, уровень может хранить соответствующее состояние.