Size: a a a

2021 February 26

E

Evgeny in Svelte [svelt]
Вот как тут быть? Я с удовольствием поделюсь с командой мыслями
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
я на самом деле задал вопрос конкретно про суть связки “jwt  с токеном и рефреш токеном.”
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
звучит как набор букв, сори )
источник

E

Evgeny in Svelte [svelt]
А?
источник

E

Evgeny in Svelte [svelt]
Pavel 🦇 Malyshev
я на самом деле задал вопрос конкретно про суть связки “jwt  с токеном и рефреш токеном.”
Не понял, что тут имеешь ввиду. Как они связаны? Рефреш включен в jwt, вероятно
источник

E

Evgeny in Svelte [svelt]
Аццесс и рефреш, все дела
источник

E

Evgeny in Svelte [svelt]
Pavel 🦇 Malyshev
звучит как набор букв, сори )
А это про то, что я написал, или ты?)
источник

E

Evgeny in Svelte [svelt]
Сори, что подтупливаю. Голова с утра раскалывается
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Evgeny
Сори, что подтупливаю. Голова с утра раскалывается
ладно, тогда раскрою мысль подробнее. издавне мы пытаемся сделать сервера максимально stateless, то есть чтобы сервер не хранил состояние каждого клиента, а только чистые данные. иными словами, круто когда любой приходящий на сервер запрос содержит всю необходимую информацию для ответа и не нужно было бы проверять авторизацию, лазить в БД/файл сессии и тп Но как это сделать?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
первая идея которая приходит в голову, а пусть клиент присылает данные как есть:


{ userId: 1000, userName: ‘Вася Пупкин’, roles: […]}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
но получается что такие данные может прислать кто угодно и написать в них что угодно, а значит их нельзя доверять
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
и тут придумали тему с JWT
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
а давайте возьмем все подобные данные и запишем их в специальном виде,а потом криптографией все это обмажем так, чтобы можно было получать эти данные и проверять их подлинность с пощью подписи
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
иными словами JWT содержит объект с данными, кстати в открытом виде, который можно отправить откуда угодно и он будет принят сервером как валидный, если подпись сойдется.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
изменить эти данные нельзя, потому что их не получится подписать
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в итоге: любой может взять jwt и пойти на сервер с ним. любой может прочитать данные записанные в этот jwt, но никто кроме сервера не может изменить/переподписать этот jwt
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
однако так как основная идея была в том, чтобы сделать сервер statless и не ходить в БД за проверкой авторизации, а просто проверять подпись jwt, то непонятно как осущесвить механиз отзыва этого jwt, кроме как изменить приватный ключ для крипты, но тогда все токены выданные ранее станут не валидными
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ты же пишешь, что у вас jwt + какие-то еще токены, типа для рефреша, которые очевидно хранятся в БД, но тогда для их проверки надо в эту БД лезть и кажется jwt теряет смысл
источник

E

Evgeny in Svelte [svelt]
Нет, не так.
jwt  с токеном и рефреш токеном -> jwt в котором есть аццесс и рефреш
источник

E

Evgeny in Svelte [svelt]
Всё
источник