JWT - это json c подписью, сжатый с помощью base64. JWT генерируется бэком, а хранится на фронте.
Подпись нужна, чтобы проверить что данные не изменены, а base64 для экономии трафика.
В json имена некоторых полей зарезервированы.
Поле exp
- предназначено для хранения даты протухания токена.
Подпись генерируется симметричным ключом, поэтому только бэк может проверять подлинность подписи.
- Время жизни jwt длится минуты, обычно 10-15 минут
- Время жизни refresh token длится дни или месяцы, обычно от 3х месяцев до года.
Для понимания назначения JWT, возьмём пример выдачи пропусков в некой организации.