Прошу прощения за скачки громкости и проблемы со звуком в начале и в конце видео. Небольшой технический "сюрприз" от свежего билда Windows 10 Insiders preview
@olehbrony65066 жыл бұрын
а можно пожалуйста рассказать, как ты устроил рабочее пространство? у тебя файлы буквально общаются между собой, в комментах приходят ответ (на 11:00, например). как ты настроил так visual code? p.s. и можно ли так настроить web storm?
@meldtown4 жыл бұрын
@@olehbrony6506 це все робить wallaby.js
@evisotskiydev5 жыл бұрын
Я просто в шоке - так быстро и непринуждённо размышлять и ориентироваться по коду - это высший уровень. Есть к чему стремиться. Удивлён что у тебя так мало подписчиков
@StanislavObrazcoff5 жыл бұрын
крутой коддинг, быстрое объяснение сложной темы на живом примере, бонус: новые фишки IDE от Ильи!
@vitaly74915 жыл бұрын
Большое спасибо, контент очень высокого качества!
@Roman-ex6to5 жыл бұрын
Это самое лучшее, что я смог найти на просторах интернета. Спасибо
@mazZZzilaplayer6 жыл бұрын
Только вчера решил ознакомиться и наткнулся на ваши первые 2 видео. Думал, что вышли давно, а значит новую часть не стоит ждать. Зашёл к вам на канал - а там новое видео, добавленное 10 минут назад, с 3 частью
@JavaScriptNinja6 жыл бұрын
Ирвин Уэлш приятно делать людям сюрпризы :)
@alexkazimir38356 жыл бұрын
Тесты с wallaby супер, всегда что-то полезное из твоих видео. Благодарность
@akass40106 жыл бұрын
Жаль дорогой
@BuyRak-rf1gp Жыл бұрын
Случайно попал на видео но могу сказать: "Хорошо, правильно, а главное актуально в комерции".
@u-u-u-user5 жыл бұрын
Привет. Какое расширение сразу подсвечивает тебе результат тестов, результат на получение при "//?" и в модулях время выполнения запросы (если я не ошибаюсь)?
@JavaScriptNinja5 жыл бұрын
это wallaby
@ne4to7775 жыл бұрын
Илья, полезное дело делаешь. Спасибо.
@TimurSevimli5 ай бұрын
Спасибо за знаний Илья! Ответь пожалуйста, а где ты хранишь refreshToken на клиенте? Не особо понимаю как ты получаешь refreshToken на теле (body) запроса в сервере
@azizkudaikulov9933 жыл бұрын
Круто! спасибо
@Owner0 Жыл бұрын
класно умеешь писать тесты. А если тесты не писать то это все по идее в постмане надо делать?
@larryunderwood6156 жыл бұрын
Илья, огромное спасибо за труд)) крайне полезное видео! но ты ОЧЕНЬ медленно говоришь, приходится ускорять до 1.75x)
@РоманВоловик-з3д5 жыл бұрын
2×
@MrJloa3 жыл бұрын
3x
@deni5n4 жыл бұрын
Видео интересное, но как мне кажется немного поверхностное для расказа про авторизацию. (по состоянию на сегодня в гите этот код собрал 69 звезд, при том, что в коде ошибки обработаны "методом страуса" В часности, что-то нужно делать серверу в маршруте /post, если приехал "левый" refreshToken, тоже самое для user/id)
@valeron_13372 жыл бұрын
Мне тоже кажется что ограничиваться 404 статус кодом при получении запроса с не верным рефреш токеном, как то не достаточно. В первом видео говорилось (14:30) что в таком случае реальному пользователю придется перелогиниватся, в процессе чего он получит новую пару токенов (пока понятно) что приведет к тому что краденые токены хакера станут не корректными (это не понятно). Каким именно обраозм краденые токены хакера должны стать не валидными если мы всего навсего возвращаем 404 при запросе на /refresh с левым токеном?
@yakovlev_io5 жыл бұрын
Спасибо огромное!
@kovalenkoam3 жыл бұрын
Можно ли применять это решение для Express.js? и что необходимо пересматривать? Я так понимаю, что надо midleware по другому как-то подключать... и что-то еще, но не понимаю до конца что именно . Если не сложно - подскажите, пожалуйста.
@Antonio-fm1sq3 жыл бұрын
Спасибо
@АлександрКосяк-ь3ь4 жыл бұрын
Возможно я пропустил, не понятно сколько будет жить обычный токен. И не хватает метода обработки стандартных запросов с верификацей токена. И еще вопрос, если при логауте удалить все токены, получится пользователь разом разлогинится на всех устройствах, это необходимо? А так инфа классная, спасибо!
@JavaScriptNinja4 жыл бұрын
Когда вы выпускаете токен, вы можете добавить в него поле, которое будет указывать когда он протухнет
@gigabek5 жыл бұрын
А есть ли wallaby для python. Я найти не могу.
@slaviksemen49199 ай бұрын
что бы ты был здоров и твои дети счастливы(только если ты не голосовал за Путина). Это первый нормальный курс с понятными обьяснениями и примерами👍👍👍
@tryhard68265 жыл бұрын
Получается, все равно, если refresh token попал не в те руки, он может им бесконечно получать себе новые пары токенов. И тут можно либо делать так, чтобы при логине другие refresh токены удалялись, но тогда нельзя будет логинится с разных машин. Так как при угоне пары токенов, юзер логинится, получает свою новую пару токенов, а в старой паре ведь была получена новая пара токенов и multiples refresh tokens are valid. И теперь сервер будет думать, юзер залогинился со второй машины.
@JavaScriptNinja5 жыл бұрын
В системах есть кнопка " разлогинить меня отовсюду". Или часто нажатие кнопки logout удаляет все существующие сессии если стояла галка "помнить меня"
@tryhard68265 жыл бұрын
@@JavaScriptNinjaЧасто пользователи просто не обращаются внимания на logout кнопку. Они просто регаются, делают что им нужно и забывают. В этом случае, можно ли как-то к токену привязать какие-то данные о машине, с которого был логин?
@JavaScriptNinja5 жыл бұрын
@@tryhard6826 можно
@kusov47484 жыл бұрын
А почему refresh token вы храните в бд? Суть JWT же в том что не надо нигде ничего хранить.
@JavaScriptNinja4 жыл бұрын
Посмотрите предыдущие серии. Как вы будете инвалидировать некорректные рефреш токены? И суть jwt совсем не в этом. Суть jwt в возможности валидации того, что токен был выпущен нужной стороной, не более. Рефреш токены вообще не являются jwt
@user-san-chous3 жыл бұрын
Вопрос ниже снимаю) ведь вроде дошло, что рефреш-токен храниться же в примере в БД, что на практике, наверное, не так часто применяют. Что-то я не могу добиться на своем учебном проекте и найти подтверждения того, что рефреш-токен используется только один раз. Это было бы замечательно в реальности, но по факту они ведь для клиента остаются все равно рабочими до истечения срока годности. Соответственно вроде и нет возможности удалять токены при логауте на сервере, а только на клиенте(( Встречаю рекомендацию делать черный список, например, в редисе, так как способа "убить" токен нет(( Просто зачем тогда в видео такой тест, в котором проверяется одноразовость рефреш-токена?
@sergeys47322 жыл бұрын
Так рефреш одноразовый и есть ) сервис тебе при рефреше возвращает новый рефреш токен, значит старый уже не актуален
@valeron_13372 жыл бұрын
31:54. А не должны ли мы при получении уже отозваного рефреш токена от реального пользователя (после того как тот был у него украден и уже использован хакером) дополнительно еще отозвать все рефреш токены чтобы выкинуть хакера? Или же это лучше сделать на клиенте, то есть при получении 404 на запрос /refresh - отправить последующий запрос на /logout? @JavaScriptNinja
@valeron_13372 жыл бұрын
Хотя нет, тогда хакер с тем же не валидным рефреш токеном сможет постоянно удалять на сервере все сесси для пользователя чей рефреш токен он украл.
@valeron_13372 жыл бұрын
В первом видео говорилось (14:30) что в таком случае реальному пользователю придется перелогиниватся, в процессе чего он получит новую пару токенов (пока понятно) что приведет к тому что краденые токены хакера станут не корректными (это не понятно). Каким именно образом краденые токены хакера должны стать не валидными если мы всего навсего возвращаем 404 при получении запроса на /refresh с левым токеном в боди?
@akass40106 жыл бұрын
А чем rc зашел больше чем config(package). И как ты с таким спобом мока подключаешь настояющую БД?
@JavaScriptNinja6 жыл бұрын
akass понятия не имею о каком пакете идёт про config
@akass40106 жыл бұрын
Javascript.Ninja я про тот где у тебя под разные окружения свой конфиг лежит. А про мок ответишь?
@sivkaburka10622 жыл бұрын
Досмотрел до 42:30
@eamarc3 жыл бұрын
я так случайно заметил, что не реализован функционал "протухания" refreshToken'а
@Cred1Tor3 жыл бұрын
так и функционал затухания и обновления accessToken'а тоже не реализован. спрашивается, зачем вообще надо было делать refreshToken...
@akass40106 жыл бұрын
Получается пример с рефрешами не валидный, так как нет сроков жизни и когда придем обновлять токен, у нас уже нет юзера.
@JavaScriptNinja6 жыл бұрын
Все вполне валидное. Если вы про то что мы выпускаем auth-токен без срока действия, то это добавить один параметр на сервере при выпуске и на функциональность не влияет
@akass40106 жыл бұрын
Javascript.Ninja да, но когда юзер получит 401 и пойдёт обновлять, то его в endpoint уже не пустит. И рефреш уже не понятно чей. Я обычно рефреш делаю тоже jwt токеном, это норм?
@JavaScriptNinja6 жыл бұрын
akass нет, не ок, потому что рефреш токен должен быть одноразовым, а как отзывать jwt токены неясно. Поэтому мы храним в бд связку юзер-рефреш токен для этого
@akass40106 жыл бұрын
Javascript.Ninja да, с этим то я согласен и я храню, только несколько. Просто исходя из примера у рефреша нет срока жизни, и когда сдох токен и к нам пришли с рефрешем, то не ясно чей он и валидный ли.
@JavaScriptNinja6 жыл бұрын
akass ещё раз. Мы явно храним в бд пары юзер-рефреш токен. Так и понимаем чей он
@v.demchenko6 ай бұрын
Я. надеюсь клавиатура выжила)
@Диасим Жыл бұрын
учились читали развивались, тут пришел бухой медведь, и решил все сломать! грустно!
@smartliga86236 жыл бұрын
Дружище, сделай, пожалуйста, видео про event loop. Твои рисунки это фирменный стиль )) все очень понятно. Вот хорошая преза, kzbin.info/www/bejne/bpKqmY2HoNR5mLM но не хватает динамических рисунков :)
@olegborodko18015 жыл бұрын
да, я б тоже хотел про event loop на русском и по понятному)
@Speane6 жыл бұрын
Блин не понимаю как вяжется тест с обновление рефреш токена при получении новой пары токенов, с мултиплай тестом для токенов, когда может быть сразу несколько рефреш токенов. Это же взаимоисключающие варианты
@JavaScriptNinja6 жыл бұрын
Первый тест - ИСПОЛЬЗУЯ токен А мы получаем токен Б, А становится невалиден. Несколько рефреш токенов - используя ПАРУ ЛОГИН-ПАРОЛЬ мы получаем несколько рефреш токенов. все валидны
@Speane6 жыл бұрын
Это понял, теперь в другом запутался. По моему вы забыли реализовать протухание refresh токена?
@JavaScriptNinja6 жыл бұрын
Alex Speane там в конфиге выдачи токена достаточно добавить ключ expiresIn
@gen78913 жыл бұрын
Не досмотрел. В названии видео надо подписать что это koa. Почему не сделать код заранее и в видео просто показать основные вещи и дать линк на гитахаб репу? Короч как по мне, сложно все, большая, плотность информации. Мне к сожалению такой формат не подходит.
@gagogoga7942 жыл бұрын
Глядя на это я чувствую себя нубом 😅
@uran1980video6 жыл бұрын
а что за фитча такая //?
@demidovruslan6 жыл бұрын
wallaby js - расширение для автоматического прогона тестов по мере написания кода. А //? - видимо директива для расширения, которая указывает, что нужно отобразить результат или значение
@nikitastroganov2896 жыл бұрын
Quokka.js Professional Edition
@vladm.96835 жыл бұрын
тоже хочу такую штуку теперь)
@MrGavr0074 жыл бұрын
своеобразная подача материала, меня он почему то раздражает)
@MsNeksus2 жыл бұрын
Мда. Знаний у тебя куча. Но такое впечатление, что ты записывал спидран, а не нечто обучающее