
Spring Security: дополнение к JWT токенам
Apollon_krd 7 минут назад Spring Security: дополнение к JWT токенам Средний 18 мин 47 Java * Информационная безопасность * Туториал Всех приветствую!Данная статья будет посвящена довольно важным вещам, таким как:...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: Apollon_krd 7 минут назад Spring Security: дополнение к JWT токенам Средний 18 мин 47 Java * Информационная безопасность * Туториал Всех приветствую! Данная статья будет посвящена довольно важным вещам, таким как: refreshtoken, метод-уровневой безопасности и примеру реализации правила "свой/чужой профиль"Не буду в этот раз делать каких-либо лирический отступлений, так что предлагаю сразу же начать. Refresh tokenЧто это вообще такое и зачем оно нам надо?
В прошлой статье когда мы реализовывали сам JWT, нам приходилось выдавать пользователю обратно некий access token. Это такой токен, который даёт право пользоваться всякими апишками так как прикрепляется к каждому запросу в header'е Ahthorization, и отвечает на вопрос: "Какие права у пользователя? Но у него есть нюанс, что он не должен долго жить, время его жизни должно быть в интервале от 15 минут до 1 часа.
Технические детали
И это сделано специально, потому что если какой-нибудь очень не хороший человек сможет получить ваш access token, то прям сильно наделять грязи он не сможет. Но у этого есть и свой минус, дабы каждые 15 минут - час получать новый access token нужно будет постоянно логиниться, а это не прикольно. Так вот чтобы такого не происходило, придумали специальный refresh token.
Он уже живёт долго, примерно от недели до месяца (как настроить) и хранится в самой базе данных в виде случайной строки символов, которая не хранит никакой полезной информации. Но как и у всего в нашем миру, у refresh token'а тоже есть свои плюсы и минусы. Начнём пожалуй с плюсов:Он безопасный - он как раз позволяет сделать access token короткоживущим, чтобы у плохих людей было меньше времени насолить кому либо.
Потому что по истечении срока жизни access token'a он превращается в тыкву и с ним ничего нельзя сделать. Он удобен для использования - как я снова писал выше, он позволяет пользователю не логиниться каждые 15 минут - час. Access token сам будет обновляться при помощи refresh token'а, после истечения срока его жизни.
Отраслевые последствия
Он позволяет контролировать сессии пользователей - сразу приведу пример: у пользователя есть несколько сессий, и на каком-либо из своих устройств он нажимает на кнопку "выйти со всех устройств", то из базы удалятся все refresh token'ы которые были у пользователя. Ну или же к примеру если есть несколько сессий, то можем показать их пользователю чтобы к примеру узнать, какие сессии нужно удалить. Он позволяет минимизировать передачу учётных данных по сети - клиент сможет всего 1 раз передать логин и пароль при первой авторизации/регистрации.
После этого север будет выдавать токены, и клиент будет использовать только их. Это даёт возможность больше нигде не передавать пароли, что полностью убирает риск утечки пароля при различных сетевых запросах.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





