Чтобы JWT работал, приложение-потребитель должно иметь возможность доверять серверу выдачи SSO / JWT. Когда выдающий сервер генерирует токен и криптографическая подпись c была проверена, утверждения по своей сути верны. Вы все равно должны проверить все входные данные в токене, чтобы убедиться, что они обоснованы.
Заявка, подобная iat
, - это сервер-эмитент, записывающий время, когда он сгенерировал токен. Если предположить, что это допустимое разумное время (не 1970), то тот факт, что сервер-эмитент указал это и подписал его, можно рассматривать как факт.
Примечание. Значения заголовка alg
и typ
всегда должны быть проверяется как совпадающее со значениями с сервера выдачи перед проверкой подписи.
Выдано в
iat
: Указывает время, когда был выпущен JWT. Значение должно быть Numeri c Date.
Возможная проверка:
- Действительное положительное целое число
- В прошлом
- Отметьте это новее, чем вы в последний инцидент безопасности (быстро отозвать все возможные скомпрометированные токены)
Тема
sub
: Идентификация субъекта JWT. (Это имя пользователя / имя / идентификатор пользователя)
Возможная проверка: - Он существует, не пустой - Пользователь существует и не заблокирован и т. Д. c в базе данных. (необязательно в зависимости от того, как вы сохраняете состояние)