Да, пессоал! Лукас здесь из Сан-Паулу.
При реализации входа пользователей в современные веб-приложения отраслевым стандартом являются веб-токены JSON (JWT). Но я вижу, что многие разработчики используют библиотеки для обработки JWT, не понимая, что они на самом деле представляют собой.
Три части JWT
Если вы посмотрите на JWT, то увидите, что это всего лишь три случайных строки, разделенные точками: `header.payload.signature`.Самое большое заблуждение заключается в том, что JWT зашифрованы. НЕТ. Заголовок и полезные данные просто закодированы в Base64. Любой, кто перехватит токен, сможет его декодировать и прочитать ваши полезные данные (именно поэтому никогда не следует помещать в них пароли или конфиденциальную информацию!).
Третья часть, подпись, обеспечивает безопасность. Это доказывает, что токен был сгенерирован вашим сервером и не был подделан.
Декодирование токенов для отладки
При устранении проблем с аутентификацией во внешнем интерфейсе я всегда использую локальный инструмент JWT Decoder. Я вставляю токен, и он мгновенно показывает мне полезную нагрузку JSON, чтобы я мог проверить правильность ролей пользователей и временных меток срока действия. Поскольку инструмент полностью работает в браузере, мои токены сеанса никогда не передаются третьим лицам.Изучите свои инструменты, и вы будете писать гораздо лучший код!