Аутентификация в Веб-Приложениях 👨‍💻JWT и Сессии

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ก.พ. 2025

ความคิดเห็น • 112

  • @alexrybalov8917
    @alexrybalov8917 3 ปีที่แล้ว +64

    Очень сложная и тяжелая для восприятия информация, поданая очень простым языком. Спасибо Макс.

  • @Alexander-lp2qy
    @Alexander-lp2qy 3 ปีที่แล้ว +21

    1. Сервер не имеет контроля над токенами - принудительное разлогирование можно реализовать без blacklist/whitelist, если подписывать токены секретным ключом + "соль" (уникальная для юзера). При изменении "соли" токен перестанет быть валидным для этого пользователя.
    2. Токены можно использовать на разных доменах - в случае с Http only cookie похоже нельзя.
    3. Защита от угона токена - в токене можно хранить дату, до которого он валиден, и fingerprint пользователя (ip, user-agent и тп).

    • @theban2517
      @theban2517 3 ปีที่แล้ว +11

      Соль в данном случае как раз будет неявной реализацией black/white list, а сама архитектура stateful

  • @zak_47
    @zak_47 4 ปีที่แล้ว +5

    Очень нравится твой канал! Продолжай в том же духе! И помни "много уроков не бывает" =)

  • @dinaraskripnik7913
    @dinaraskripnik7913 ปีที่แล้ว +1

    Максим, спасибо за труд, за прекрасную, лаконичную, понятную и структурированную подачу материала. Захотелось посмотреть остальные видео с Вашего канала.

  • @isaabk4409
    @isaabk4409 3 หลายเดือนก่อน

    Спасибо, красивый дяденька! 🎉

  • @therapeutic_music_for_sleep
    @therapeutic_music_for_sleep 2 ปีที่แล้ว +5

    Огромное спасибо! Видео - кладезь информации, объяснения понятны даже фронтендеру :D

  • @pavelb5410
    @pavelb5410 2 หลายเดือนก่อน

    Хороший видосик. 👍

  • @Wivern11
    @Wivern11 4 ปีที่แล้ว +66

    Все хорошо, но зАголовок режет слух. ЗаголОвок, если что

    • @TrayHardPlay
      @TrayHardPlay 3 ปีที่แล้ว +7

      Тоже резануло, меня вообще такое сильно отвлекает от просмотра

    • @redheroteam
      @redheroteam 3 ปีที่แล้ว +1

      Аксесс токен тоже режет слух :))

    • @Ivan-vb7ch
      @Ivan-vb7ch 3 ปีที่แล้ว +3

      Он ж с Украины, грех жаловаться

    • @warcraft.mp4889
      @warcraft.mp4889 ปีที่แล้ว +1

      Он с украины, скажи спасибо что он не на нахрюке говорит..

    • @miha704
      @miha704 ปีที่แล้ว

      @@warcraft.mp4889русачок образився на мову🥹

  • @Павел-б1д3я
    @Павел-б1д3я 3 ปีที่แล้ว +4

    Полезная инфа, продолжайте в том же духе👍

  • @eugene_mountainland
    @eugene_mountainland 6 หลายเดือนก่อน

    Очень доходчиво, спасибо)

  • @ediego_64
    @ediego_64 2 ปีที่แล้ว +2

    Отличное видео, хорошая структура подачи материала! Успехов!

  • @mrhell2863
    @mrhell2863 4 ปีที่แล้ว +15

    Как будет время, разбери пожалуйста на примерах, как правильно организовать роли и права и что используют обычно, casbin или самому можно написать реализацию. Желательно не только админ, гость, пользователь а более кастомные с назначением прав и тд.

    • @zak_47
      @zak_47 4 ปีที่แล้ว +1

      да, норм тема, было бы интересно

  • @МихаилМилюк
    @МихаилМилюк 3 ปีที่แล้ว +5

    Серверу нужна информация о записи текущей сессии пользователя в любом случае. В случае сессий по куки он их ищет в каком-нибудь реддисе, либо же у себя в папочке в txt документе. В случае токена, он лезет в базу, что бы найти этого пользователя и его пермишены, так что в общем то оверхеда никакого нет.

    • @kostyalolua9703
      @kostyalolua9703 ปีที่แล้ว

      не всегда, пермишены могут быть и в токене зашиты

  • @Andrew-v4o7k
    @Andrew-v4o7k ปีที่แล้ว

    Это самое понятное объяснение про JWT токены, что я встречал. Спасибо!

  • @TheEBPO
    @TheEBPO 2 ปีที่แล้ว +1

    Было очень ползено! Спасибо за труд!

  • @Takimekufu
    @Takimekufu 2 ปีที่แล้ว +5

    Идентификация это как раз таки и есть who are you, а вот аутентификация это уже подтверждение того, что ты - это точно ты.
    Проще говоря, когда на сайте просят ввести логин/номер телефона/почту - это идентификация - вы ввели логин user, окей, на сайте вы будете user. Когда просят пароль - это аутентификация: вы user, окей, а докажи это, введя пароль.
    Если путаете понятия, просто вспомните о существовании двухфакторной аутентификация, ведь по сути это подтверждение того, что user это точно вы - вы вели логин и пароль, а сайт говорит: «Логин есть, пароль правильный, но это точно ты? Я отправил на твой телефон смс с кодом, введи его сюда».

  • @pavelb5410
    @pavelb5410 2 หลายเดือนก่อน

    Если конечно делаешь многопользовательский сайт стандартную ЦМСКУ, по-любому сессий хватит если их использовать с умом и не хранить там всякую дичь, с только короткие числовые значения типа id юзеров, id группы, ну и метку времени жизни сессии, то нагрузка на сервер минимальная, + можно обнулять сессии через 15 минут неактивности, а помнить юзеров при помощи куки и токена в базе, после аутентификации сохранять данные в сессии. Это старый надежный способ.

  • @cronosnoname4038
    @cronosnoname4038 4 ปีที่แล้ว +2

    Огонь, прям разжевал и в рот положил ! Спасибо за видео очень понятно и информативно :-)

  • @jetbrain9115
    @jetbrain9115 2 ปีที่แล้ว +3

    Молодец! Спасибо!

  • @MsDimons123
    @MsDimons123 ปีที่แล้ว +1

    Это просто клад а не видео, спасибо

  • @romanihnatov5629
    @romanihnatov5629 3 ปีที่แล้ว +1

    Спасибо, хорошо рассказал!

  • @coordinata_m
    @coordinata_m 9 หลายเดือนก่อน

    Очень круто, максимально понятно, спасибо❤‍🔥

  • @denisrogov7120
    @denisrogov7120 ปีที่แล้ว +1

    Вопрос. Что обычно кидают в тело токена?
    Было сказано, что в токене лучше не передавать конфиденциальную инфу.
    А что туда пихать? id ?))
    Я вот этот момент не понял.

    • @xelth
      @xelth 3 หลายเดือนก่อน

      по сути тебя интересует только правда или неправда, это реализуется симметричным шифрованием, шифруешь "thue" - когда расшифровываешь получаешь или тру или ошибку что в JS false :) ... а вся эта информация котрая туда напихана это просто соль.

    • @xelth
      @xelth 3 หลายเดือนก่อน

      @sovaplayed ну значит ты не понимаешь то что я написал...

    • @xelth
      @xelth 3 หลายเดือนก่อน

      @sovaplayed ты знаешь что подразумевают под словом соль в шифровании?

  • @olexisme
    @olexisme 4 ปีที่แล้ว +1

    Огромное спасибо за видео:)

  • @P_B_N_D
    @P_B_N_D ปีที่แล้ว

    Отличный разбор темы!👍 Спасибо!

  • @mikhail3374
    @mikhail3374 2 ปีที่แล้ว +1

    Спасибо, очень познавательно! Респект!

  • @themichael8767
    @themichael8767 ปีที่แล้ว +1

    Спасибо Вам большое 🤍

  • @baldman6804
    @baldman6804 2 ปีที่แล้ว +3

    Все хорошо, но слово зАголовок с ударением на первый слог, чуть не съело мой мозг.

  • @phpuser3243
    @phpuser3243 ปีที่แล้ว +1

    Большое спасибо, относительно просто описали

  • @МаксимМалофеев-п3ы
    @МаксимМалофеев-п3ы 2 ปีที่แล้ว

    спасибо!

  • @kirillshchur2697
    @kirillshchur2697 ปีที่แล้ว

    Спасибо тебе! Очень доступно объясняешь!

  • @ileatvazazelpro316
    @ileatvazazelpro316 ปีที่แล้ว

    Спасибо огромное за такое простое объяснение!

  • @ah_kak_skazano
    @ah_kak_skazano 2 ปีที่แล้ว +1

    Спасибо! Ты понятно объяснил и очень помог

  • @duoduoo6732
    @duoduoo6732 ปีที่แล้ว +1

    Хорошо объяснено. А в сессиях ID сессии тоже ведь генерируется каким то шифрованием?

    • @xewuss3750
      @xewuss3750 ปีที่แล้ว +2

      В принципе, для простоты можно использовать id сессии, которая генерируется БД.
      Но можно и зашифровать некую строку с данными пользователя, которая и будет считатьтся идентификатором, то есть применить тот же подход, что и с токенами.

  • @dzianishrip5139
    @dzianishrip5139 3 ปีที่แล้ว +2

    Микрофон вроде нормальный, а звук нет - зашкаливающе басит

  • @chu6275
    @chu6275 ปีที่แล้ว +1

    спасибо дружище!

  • @svetogor777
    @svetogor777 3 ปีที่แล้ว +1

    Спасибо огромное!!

  • @timur.shhhhh
    @timur.shhhhh 8 หลายเดือนก่อน

    Так и не понял, JWT используется в access/refresh токенах, или это отдельный вид?

    • @xelth
      @xelth 3 หลายเดือนก่อน

      я думаю да... зачем еще раз колесо изобретать... просто один светится часто другой запрятан... От противного, если он более доверительный то почему бы аксес не сделать такимже...

  • @oleksiilobodiev9446
    @oleksiilobodiev9446 2 ปีที่แล้ว +1

    Нам потрібно терміново відео по авторизаціях та ролях :)

  • @alexrybalov8917
    @alexrybalov8917 4 ปีที่แล้ว +1

    Прекрасно объяснил.

  • @micberezin
    @micberezin ปีที่แล้ว

    Топ! Спасибо за разбор.

  • @tilekasankulov5034
    @tilekasankulov5034 4 ปีที่แล้ว +1

    Круто!!!

  • @АндрейСавченко-ь6х
    @АндрейСавченко-ь6х 3 ปีที่แล้ว +1

    Отлично спасибо

  • @artemiy_
    @artemiy_ 3 ปีที่แล้ว +2

    что мешает злоумышленнику перехватить айди сессии и заполучить доступ?

    • @benitozara5011
      @benitozara5011 3 ปีที่แล้ว +2

      как говорит он, то что в куки, к тому js через xss не доберётся

    • @xewuss3750
      @xewuss3750 ปีที่แล้ว +1

      @@benitozara5011 , можно перехватить пакеты, если http.

    • @dreksenthebest9738
      @dreksenthebest9738 7 หลายเดือนก่อน

      он же сказал, что данные шифруются

  • @vonseven
    @vonseven ปีที่แล้ว

    пушка 💪

  • @niki-brz
    @niki-brz 2 ปีที่แล้ว

    А что такое тогда идентификация?

  • @flac1482
    @flac1482 3 ปีที่แล้ว

    JWT имба

  • @gluzdovandrey
    @gluzdovandrey 3 ปีที่แล้ว

    Пасиб

  • @Ivan-vb7ch
    @Ivan-vb7ch 3 ปีที่แล้ว +1

    🔥🔥🔥🔥🔥

  • @romanryaboshtan9270
    @romanryaboshtan9270 3 ปีที่แล้ว

    1:50 Спасибо, а я всё думал, почему тот парень 403 ошибки на фронтэнд кидал

    • @xelth
      @xelth 3 หลายเดือนก่อน

      не понимаю зачем... лучше или написать 404 мол нету такого забей и не ищи или ты же чего-то искал дать тебе какую-то пургу случайную с соседних сайтов, сиди разбирайся ;)

  • @BoxMail-gs6fl
    @BoxMail-gs6fl ปีที่แล้ว +1

    Самое понятное объяснение, которое я нашел. Такое впечатление, что люди выкладывают видео для того, чтобы показать какие они великие программисты. Новичкам надо рассказывать максимально просто. А синьоры это уже итак знают.

  • @vtotbl
    @vtotbl 4 ปีที่แล้ว +2

    Классное видео. Не мог бы ты подробнее рассказать про сервис авторизации?

  • @mike.klinko
    @mike.klinko ปีที่แล้ว +1

    Дай боже тобі здоров'я, бо ніхто не міг пояснити. Красава.

  • @nitkin2z
    @nitkin2z 3 ปีที่แล้ว

    А вы можете своих видео, показать тестовое задание, и показать его на примере на go

  • @shushankharatyan1660
    @shushankharatyan1660 3 ปีที่แล้ว +1

    Спасибо

  • @sergdeberzherak6264
    @sergdeberzherak6264 3 ปีที่แล้ว

    Спасибо!

  • @doctor6261
    @doctor6261 4 ปีที่แล้ว +1

    Круто...

  • @inga153
    @inga153 2 ปีที่แล้ว

    спасибо

  • @TheEBPO
    @TheEBPO 2 ปีที่แล้ว +4

    ЗаголовОк... ))) разве нет? )) у Макса такое произношение этого слова, что я остальные его слова не слышу ))

  • @xyanmatus
    @xyanmatus 3 ปีที่แล้ว +9

    даешь зАголовок, блеа!)

  • @tamelepenergy3848
    @tamelepenergy3848 2 ปีที่แล้ว

    Видео информативное, спасибо! Но, пожалуйста, говорите слово "загoлОвок" правильно, ухо режет :)

  • @yourgachaworld4433
    @yourgachaworld4433 ปีที่แล้ว

    в зАголовках))

  • @andriichekanovskyi9369
    @andriichekanovskyi9369 2 ปีที่แล้ว

    Макс, є запитання. Сервер генерує пару токенів, refreshToken з яких зберігається в БД. В такому випадку це не означає, що сервер стає stateful?
    І ще одне невелике запитання. Якщо зберігати токен в http only куках, а не в local/session storage, тоді яким чином ми зможемо відправляти реквест із заголовком Authorization з клієнта? Нам ж потрібно витягнути звідкись цей токен за допомогою JS, або ж я щось не зрозумів...

  • @aleksey2793
    @aleksey2793 3 หลายเดือนก่อน +1

    В чем смысл делать скрин с текстом и проговаривать его словами? Проще статью почитать, не отвлекаешься на голос. Ценность видео должна быть в графическом представлении информации

    • @MaksimZhashkevych
      @MaksimZhashkevych  3 หลายเดือนก่อน

      в чем смысл этого комментария?

  • @at1set590
    @at1set590 6 หลายเดือนก่อน

    зАголовок, боже, как это тригерит)

  • @redice8928
    @redice8928 ปีที่แล้ว

    А как клиент отправляет пароль и логин на сервер. Он шифруется? Если шифруется, то как передаются ключи шифрования, как это работает?

    • @bbnowhat
      @bbnowhat 10 หลายเดือนก่อน

      Http не шифрует
      Почитай про https

  • @vic_shine
    @vic_shine 4 ปีที่แล้ว +3

    Ещё бы живой пример каждого подхода, например, бэк на Go и форма авторизации на React - вообще было бы супер. Чувствуется какая-то недосказанность в видео.

    • @klim_neumann
      @klim_neumann 2 ปีที่แล้ว

      Всё сказано абсолютно четко и понятно - где хранить и как передавать. Если кто-то хочет узнать как создавать сессии, устанавливать куки, генерировать токены и т.д, тот пойдёт и найдёт эту информацию в интернете.

  • @cutvideo8889
    @cutvideo8889 2 ปีที่แล้ว

    Дружище, ну ненавидишь ты русский язык или просто слово заголовок, ну скажи header. Зачем так уродовать слово то?

  • @tiltedenmu7408
    @tiltedenmu7408 2 ปีที่แล้ว

    зАголовок? Ты норм? Зачем ты так говоришь, если это неправильно

  • @ЕвгенийМирошниченко-е5м
    @ЕвгенийМирошниченко-е5м 11 หลายเดือนก่อน

    Ударение у автора странноватое: дОмены и зАголовки

  • @Bobheinlein
    @Bobheinlein ปีที่แล้ว

    зАголовок? Ты серьезно?

  • @BetonomeshatelAga
    @BetonomeshatelAga ปีที่แล้ว

    зАголовок🤦‍♂

  • @saber1in
    @saber1in ปีที่แล้ว

    зАгловок ахаха

  • @НурданАбдиев-м8м
    @НурданАбдиев-м8м ปีที่แล้ว

    ЗаголОвок

  • @StanleyFishman
    @StanleyFishman ปีที่แล้ว

    Ударение в слове "зАголовок" - не на первый слог. Проверочное слово "голова". Учите русский язык.

    • @MaksimZhashkevych
      @MaksimZhashkevych  ปีที่แล้ว +1

      выучи за 2 года украинский на том уровне, на котором я выучил русский
      тогда поговорим

  • @ediego_64
    @ediego_64 2 ปีที่แล้ว +1

    Отличное видео, хорошая структура подачи материала! Успехов!

  • @nikenuke
    @nikenuke ปีที่แล้ว +1

    спасибо!

  • @svyatoslavartemov3153
    @svyatoslavartemov3153 2 ปีที่แล้ว

    Спасибо 👍

  • @_AnOrdinaryPerson
    @_AnOrdinaryPerson ปีที่แล้ว

    заголОвок

  • @mouri_san
    @mouri_san 9 หลายเดือนก่อน +1

    спасибо!