JWT авторизация. Основы JWT - механизма.

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 61

  • @romanwiens7297
    @romanwiens7297 29 дней назад +2

    Отличное объяснение и оформление. Сразу понял и запомнил всю информацию. Спасибо

    • @eager4IT
      @eager4IT  27 дней назад

      Спасибо за фидбэк)

  • @marial8473
    @marial8473 2 месяца назад +2

    Наконец то нашла толковое объяснение темы jwt. Огромное спасибо😊

  • @HeckenkampRammutla
    @HeckenkampRammutla Месяц назад +1

    Du hast das Thema super verständlich gemacht.

  • @alla6361
    @alla6361 Месяц назад

    Спасибо, очень четко!

  • @BogdanButenko-h9i
    @BogdanButenko-h9i Месяц назад

    Спасибо, очень полезно 👍

    • @eager4IT
      @eager4IT  Месяц назад

      Пожалуйста 🙂

  • @ДинаЛаптий
    @ДинаЛаптий 2 месяца назад

    Спасибо большое

    • @eager4IT
      @eager4IT  2 месяца назад

      Пожалуйста)

  • @userGerostoos
    @userGerostoos 2 месяца назад

    я отправлял только access token клиенту, c refresh даже не сталкивался, по видео можно сразу понять как его написать и пользоваться сразу двумя токенами для большей безопасности, но как правило refresh не всегда нужен, все понятно и кратко, спасибо!
    интересно какие аналоги JWT токену есть?

    • @eager4IT
      @eager4IT  2 месяца назад

      Спасибо за фидбек)
      Аналогами могут быть абсолютно любые другие методы идентификации, вплоть до физических access ключей)

  • @gerompauel
    @gerompauel 28 дней назад

    awesome!!! 🎉

  • @фанатпуджа2007
    @фанатпуджа2007 Месяц назад

    на 4:35 забыл упомянуть, что перед тем как отправить данные на сервер, они хэшируются на клиенте, а так хороший видос, освежил память, спасибо

    • @eager4IT
      @eager4IT  Месяц назад +1

      Конечно, все данные передаются в закрытом виде, благодарю)

    • @xelth
      @xelth Месяц назад

      какой смысл их хешировать? Если сервер не знает пароля... а если ты посылаешь готовый хеш который хранится в базе данных - то это и есть пароль который ты в открытом виде передаешь а то что ты его ка-то там с помощью чего-то создаешь никого не интересует. Как-то закодировать наверно есть смысл а хешировать точно нет...

  • @goldstein1
    @goldstein1 4 месяца назад +4

    А зпчем 401 на каждый устаревший запрос?
    Не проще ли на 401 ввиду экспирации токена сразу проверить опцию с рефрешем?

    • @eager4IT
      @eager4IT  4 месяца назад +1

      Сразу можно проверять, но тогда сервер не сможет отправить новую сгенерированную пару клиенту, ввиду разных запросов)
      Так как например на GET /users или POST /add-to-cart, при экспирации токена и проверке рефреш токена, сервер должен будет отправить либо новые ключи, или данные)

    • @xelth
      @xelth Месяц назад

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

  • @universemultiverse3699
    @universemultiverse3699 Месяц назад

    Что-то все равно не понятно. Сказано, что access токеном может завладеть злоумышленник, поэтому создается еще и refresh токен, который будет обновлять access токен. Но что, если злоумышленник также завладеет и refresh токеном?

    • @epishcom
      @epishcom Месяц назад +2

      У рефреш токена обычно очень маленький срок, минут 15 например. В ситуации, когда злоумышленник перехватывает ваш рефреш токен и генерирует с помощью него новую пару(основной , рефреш) токенов, обычно вы продолжаете сессию и в процессе так же запрашиваете обновление токена, но из повторного запроса обновления по одному и тому же токену отзываются вообще все токены принадлежащие пользователю. +можно отслеживать на какой ip был выдан токен и накой ip просят новый и при не совпадении так же отзывать.

    • @xelth
      @xelth Месяц назад

      конечно может, но ты его как-бы не так часто светишь как аксес... и вероятность меньше

    • @eager4IT
      @eager4IT  Месяц назад

      Рефреш токен может быть установлен только через http, поэтому даже если его сопрут, то все равно не смогут воспользоваться)

    • @epishcom
      @epishcom Месяц назад

      @@eager4IT почему не сможет?

    • @crazyprogamer7239
      @crazyprogamer7239 20 дней назад

      ​@@epishcom это у аксес токена время жизни 15-30 минут, а у рефреш токена где то от 2 недель до нескольких месяцев. Чем слушал?
      Обычно отслеживается откуда идет этот токен, поэтому если узнают твой рефреш токен, то сервер не позволит его юзать

  • @MaxFomin-g8b
    @MaxFomin-g8b Месяц назад

    Такое чувство, что очень много пропустил, особенно что сервер который выдаёт токены как правило не тот, где лежит желанная штука

    • @eager4IT
      @eager4IT  Месяц назад

      Это может быть один и тот же сервис или сервер, не имеет значения)

  • @Жиловшопе
    @Жиловшопе 11 месяцев назад +9

    В JWT нет шифрования. Есть кодирование и хэширование.

    • @eager4IT
      @eager4IT  11 месяцев назад +1

      Все верно. Ошибочно упомянул это в начале видео. В самом же объяснении используются правильные термины. Благодарю.

    • @kolyuchkin
      @kolyuchkin 5 месяцев назад

      В JWT есть шифрование, только автор этого не упомянул, т.к. не вникал в суть вопроса. В JWT можно именно зашифровать содержимое второй части токена (полезная нагрузка), а уже потом подписать описанным автором методом. Информация по алгоритму шифрования (наименование, входные параметры и т.д.) сохраняется в первой части токена (служебная информация). Потом уже это все кодируется в Base64-кодировке для передачи по HTTP (ну совсем не любит он бинарные данные, только текст).

    • @bocik2854
      @bocik2854 4 месяца назад

      @@kolyuchkin http v2 любит ;)

    • @ВасилийГоловко-д9и
      @ВасилийГоловко-д9и 3 месяца назад +1

      т.е. нет шифрования? там даже есть поле какой алгоритм используется и приватный ключ нужен

    • @xelth
      @xelth Месяц назад

      @@kolyuchkin мне тоже кажется что есть смысл просто пользозваться aes-256-gcm например... зашифровано аес а как подпись gcm использовать

  • @EvgeniiBalaukhin
    @EvgeniiBalaukhin 2 месяца назад

    Дживити? Джот же

  • @kolyuchkin
    @kolyuchkin 5 месяцев назад

    Не "сигнатура", а "подпись".

    • @eager4IT
      @eager4IT  5 месяцев назад +3

      Благодарю, но это одно и тоже)

    • @kolyuchkin
      @kolyuchkin 5 месяцев назад

      @@eager4IT , не совсем))) Есть в программистской среде такое понятие, как "сигнатура метода" (информация, содержащая описание метода - имя, аргументы, тип возвращаемого результата и др.), так вот Ваш вариант конфликтует с этим. В большинстве случаев, конечно, это вина авто-перевода)))

    • @eager4IT
      @eager4IT  5 месяцев назад

      Все верно, однако эта тема не про классы и методы)

    • @kolyuchkin
      @kolyuchkin 5 месяцев назад

      @@eager4IT , а вне контекста программирования для чего эта тема?))

    • @alexandralikin3830
      @alexandralikin3830 4 месяца назад

      Что ты доебался, умник? Эти слова равноценны. Окно открой...

  • @romanwiens7297
    @romanwiens7297 29 дней назад

    Отличное объяснение и оформление. Сразу понял и запомнил всю информацию. Спасибо

    • @eager4IT
      @eager4IT  27 дней назад

      Спасибо за фидбэк)