JWT Auth в FastAPI | Выпуск и проверка токена | Пароль и шифрование через bcrypt

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

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

  • @sinsinegobaffa7321
    @sinsinegobaffa7321 11 месяцев назад +6

    Если бы не ты и этот замечательный плейлист, я не знаю что бы я делал с дипломом, посмотрел все ролики по нескольку раз, и пишу параллельно апку, ты как научрук))) спасибо!)

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

      Крутяк! Я рад, что вам помогло

  • @cherdak_turista
    @cherdak_turista Год назад +11

    Сурен, добрый вечер! Спасибо за качественные видео! Пожалуйста, не останавливайся) У тебя талант

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +6

      Добрый вечер. Пожалуйста!
      Очень приятно. Останавливаться не планирую ☺

  • @saitaro
    @saitaro Год назад +5

    Я осилил этот плейлист, и теперь знаю всё о программировании! Сурен меня всему научил. Спасибо, Сурен!

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +5

      Крутяк, пожалуйста!
      Конечно, до знания всего ещё долго добираться, да и нужно не только посмотреть, а ещё и написать это своими руками, но круто, что вы осилили все видео!

  • @AlexanderITandEng
    @AlexanderITandEng 6 месяцев назад +5

    Сурен, Вы просто легенда. Спасибо вам за такие информативные ролики, где вы показываете не только как сделать, но и как принято/правильно делать. Тем самым создается отличная база знаний для разработчика и он не будет белой вороной в команде. Спасибо Вам!! Продолжайте в том же духе💪💪💪

    • @SurenKhorenyan
      @SurenKhorenyan  6 месяцев назад +2

      @@AlexanderITandEng кайф, пожалуйста! Очень приятно, я рад 🥰
      Спасибо за теплые слова 😊

  • @sayomortal
    @sayomortal 7 месяцев назад +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  7 месяцев назад

      Кайф! Спасибо, очень приятно 🥰

  • @Alex-zl7wg
    @Alex-zl7wg 4 месяца назад +2

    Превосходная подача материала! Всё подробно и в то же время ничего лишнего. Преподавать ваше призвание! Спасибо за курс.

  • @helloiveqw5290
    @helloiveqw5290 6 месяцев назад +2

    Очень классное и понятное видео. Мне как человеку который долгую часть времени изучал плюсы приятно что везде указываются типы данных так как в других видео просто переменные и что где и как хранится не понятно)

    • @SurenKhorenyan
      @SurenKhorenyan  6 месяцев назад

      @@helloiveqw5290 кайф! Я рад, что вам понравилось 🥰
      Спасибо

  • @antonmislawsky
    @antonmislawsky 10 месяцев назад +1

    Классные уроки очень высокого уровня без воды
    спасибо

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Кайф, я рад, что вам понравилось! Пожалуйста! 🥰

  • @Viktor-b3k
    @Viktor-b3k Год назад +2

    Это лучший материал по auth который мне попался. Наверно, благодаря лучшему автору!

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Круто, спасибо большое! Очень приятно 🥰

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

    Сурен, спасибо большое за проделанную работу! Очень полезно и крайне детально.
    Планируете ли продолжение этой серии? Думаю, там есть еще очень моногое, о чём можно рассказать.

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

      Пожалуйста!
      Да, продолжение обязательно будет. Возможно, успею весной ещё пару роликов по теме выпустить

  • @lifestyletv139
    @lifestyletv139 Год назад +2

    Топ. То, что надо, лучший контент в мире по фастапи!!! Продолжай

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Кайф, спасибо! Очень приятно 🥰
      Я рад трудиться

  • @АнтонКородян
    @АнтонКородян 6 месяцев назад +1

    Спасибо вам большое за такой детальный материал,
    перехожу с django и скажу разница существенная.

  • @mukhamedzhumabekoff7642
    @mukhamedzhumabekoff7642 Год назад +1

    отличная работа, название == содержание, никакого кликбейта, спасибо!

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      спасибо! рад трудиться ☺
      рад, что понравилось

  • @МаксМаисеев-ч3з
    @МаксМаисеев-ч3з Год назад +1

    Привет, спасибо за информацию, до того как нашёл твои видео смотрел другого ютубера по фаст апи но увидел тебя и стал смотреть твои видео

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Привет, пожалуйста!
      Класс, приятно ☺

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

    Как всегда красавчик 👍 спасибо, пойду делать тестовое по этому видосу🙂

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

      Кайф, удачи!
      Кстати, если несложно, поделитесь плиз тестовым. Можно в личке (все ссылки в описании канала)

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

      ​@@SurenKhorenyan Без проблем👌для тех кто читает, тест заключается в написании 2х енд поинтов. 1й аутентификация, регистрация (jwt), возможность смены пароля.
      2й перевод средств (транзакциии).
      Считаю, что это многовато для тестового, но хотя в бэкенде опыта у меня не много. Подскажите, плиз народ или автор, это ту мач?

  • @Alex89muller
    @Alex89muller 7 месяцев назад +1

    Сурен, Спасибо за видео! Очень круто. Правда на замедленной перемотки приходится смотреть - очень быстро. В остальном объяснения прям супер.

    • @SurenKhorenyan
      @SurenKhorenyan  7 месяцев назад +1

      Пожалуйста!
      Хах. И так стараюсь медленнее говорить.. 😅 ещё тренируюсь

    • @Alex89muller
      @Alex89muller 7 месяцев назад +1

      @@SurenKhorenyan 😂🤷‍♂️

  • @twenty1th
    @twenty1th Год назад +1

    Отличное видео, как всегда. Спасибо за работу!

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Класс! Рад, что вам понравилось 🥰
      Пожалуйста

  • @dazdik
    @dazdik Год назад +1

    лучший видос, помог разобраться с ошибкой в проекте 🔥

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Крутяк! Я рад, что у вас получилось, и что я смог помочь 🥰

  • @NikitaProfir
    @NikitaProfir Год назад +1

    Огромное спасибо за контент!

  • @Борщкот
    @Борщкот Год назад +1

    Топчик, отдельный респект за таймкоды

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Супер! Не зря я их выписывал 😅

  • @stvJnK
    @stvJnK Год назад +1

    Привет! Супер материал, для меня открытие было про использование RSA. Тема сложная, но у Вас подача материала очень хорошая :) . Жду с нетерпением продолжение.
    Если будет возможность хотелось бы услышать про Refresh токены как этот механизм работает и какие у него особенности (сколько не разбирался не могу понять принцип обновления и хранения в каких-то http-only в куках, local storage).
    Мучают вопросы момента обновления токенов:
    1. Например время жизни Access 15 минут, соответственно пользователь вернулся через 2 часа и так как Access протух, то смотрим Refresh токен. И обновляем Access и Refresh или только Access.
    2. В процессе пользования Access токена, система видит, что подходит время и обновляет Access или работаем как в 1 пункте и смотрим на Refresh и меняем только Access или Refresh тоже...

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +1

      Привет! Класс, я рад, что понравилось 😊
      Про рефреш тоже будет позже, в рамках большого видео по авторизации.
      По рефрешу вы написали два подхода, которые могут использоваться отдельно друг от друга, а также вместе. Всё зависит от реализации

  • @Давид-у3д7ж
    @Давид-у3д7ж Год назад

    Вот спасибо тебе, Сурен! Не прямо, но опосредовано помог найти решение моей траблы :)

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Круто, пожалуйста! Рад помочь 🥰

  • @Katar1x
    @Katar1x Год назад +4

    Нужна серия роликов по созданию проекта КАК на проде.
    То есть взять тематику для примера и с нуля пройти этапы проектирования бд, построения архитектуры, и т д

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +1

      Есть такое в планах, всё никак не решу, что именно делать. Хочется какой-то полезный, но несложный проект

    • @Katar1x
      @Katar1x Год назад +1

      Сайт-хранилище с мемами можно)@@SurenKhorenyan

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      так для этого телеграм-каналы есть 🙂

  • @user-fm1552
    @user-fm1552 Год назад +1

    классная подача материала ! спсб !

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

    Спасибо за видео !

  • @Mr_Endorphin_vod
    @Mr_Endorphin_vod Год назад +2

    Здравствуйте, Сурен! Большое Вам спасибо за ваши видео - это самый подробный курс по fastapi, который встречал! Успехов в развитии вашего канала:)
    И подскажите пожалуйста, не планируете ли вы разобрать RabbitMQ? Он очень часто встречается на проектах, но пока не встречал адекватных видео в связке с python

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Добрый день! Пожалуйста!
      Я рад, что вам нравится, мне очень приятно.
      Спасибо большое! Дальше больше 💪
      По RabbitMQ планирую сделать видео, тема очередей задач очень важна. Просто пока по теме видео мы даже и близко не добрались. Когда-нибудь обязательно будет, может быть даже в этом году 🙂

  • @HumoyunAhmedov-g9r
    @HumoyunAhmedov-g9r 11 месяцев назад +2

    Спасибо вам!

  • @arturzhukovets7951
    @arturzhukovets7951 10 месяцев назад +1

    Спасибо за урок! Очень круто! А можешь тезисно описать хронологию использования вот такого вот способа аутентификации со стороны фронта? Я хочу использовать React. Если конкретнее то куда правильнее всего положить этот токен для использования в других запросах?
    И будет ли это вообще корректно использовать такой способ auth для обычного сайта или jwt auth используется только для каких-то сервисных АПИ?

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Фронт сохраняет токен в local storage, каждый раз в запросе указывает
      По аналогии ещё нужен refresh token, у которого срок жизни больше. И при помощи этого токена надо обновлять обычный.
      Когда-нибудь это тоже покажу 🙂

    • @arturzhukovets7951
      @arturzhukovets7951 10 месяцев назад +1

      Будет здорово. А так спасибо за ролики по FASTAPI, это как глоток свежего воздуха

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      @@arturzhukovets7951 пожалуйста!

  • @Паша-н9ь
    @Паша-н9ь 4 месяца назад

    спасибо! Все четко и понятно!

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

      @@Паша-н9ь пожалуйста!

  • @МихаилЕфимов-м3у
    @МихаилЕфимов-м3у Год назад +1

    Привет, всё отличено, единственный момент который стоит делать по другому это 37:40, где используется utcnow(), который признан deprecated в 3.12. Можно почитать обсуждение по этому поводу на форуме discuss python в теме "Deprecating `utcnow` and `utcfromtimestamp`"

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      привет, спасибо!
      да, я в курсе про deprecation warning в 3.12. пока что его нигде не используют, так что не страшно. да и в ворнинге написано, как заменить

  • @ВикторГлухов-р3ь

    Спасибо за материал!
    10:30 сижу и не понимаю, откуда эти команды у меня в README должны появиться))))

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Пожалуйста! Это я их так незаметно успел скопировать. И вставил после создания файла 😅

    • @ВикторГлухов-р3ь
      @ВикторГлухов-р3ь Год назад +1

      Благодарю за контент!
      @@SurenKhorenyan

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Пожалуйста! Рад, что вам нравится

  • @nerassstraivaisya
    @nerassstraivaisya Год назад

    Привет, спасибо большое за плейлист по фастапи, очень качественно преподаешь! Было бы круто, если бы ты сделал ролик по созданию полноценного многомодульного приложения, где разные апишки общаются между собой 😊

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +2

      Привет, пожалуйста!
      Всё впереди, может быть и до этого доберусь 🙂

  • @IvanSoregashi
    @IvanSoregashi 19 дней назад

    А вот спасибочки за инфу.

  • @georgedudaev8738
    @georgedudaev8738 Год назад +1

    Сурен, добрый день, спасибо, что подробно объясняешь! другие блогеры поверхностно пробегаются или просят покупать платные курсы, но ни у одного даже на платных не увидел как грамотно сделать аутентификацию и авторизацию с access и refresh токенами, может ты хотя бы возьмешь на вооружение, а то так нигде и не нашел как сделать именно грамотную авторизацию, а не просто access токен, он ведь живет всего лишь 15-30 минут, было б круто если бы прям рассказал как это работает и показал, для чего нужен рефреш токен, и как с его помощью рефрешатся эти токены

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +1

      Привет, пожалуйста!
      Да, обязательно будет и как скомбинировать это всё и жить с access + refresh токенами

    • @georgedudaev8738
      @georgedudaev8738 Год назад

      @@SurenKhorenyan очень жду, а то индусов смотреть устал, никто еще нормально не сделал это как надо со слоистой архитектурой

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +1

      @@georgedudaev8738 просто подходов довольно много, надо про них рассказать, сравнить. будет зимой

    • @georgedudaev8738
      @georgedudaev8738 Год назад +1

      ​@@SurenKhorenyan могу помочь как человек пытающийся все это реализовать, вопросы возникающие у людей, что непонятно, это все рассказать, думаю если сделаешь полноценный модуль авторизации, с эндпоинтами смены пароля и сброса пароля, и это все на бусти, много подписок обеспечено!

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@georgedudaev8738 конечно, пишите ваши вопросы! я пока ещё не подготовил сценарий по этой теме, ресерч ещё впереди, так что любая информация пригодится

  • @pierredechardin6340
    @pierredechardin6340 Год назад +2

    Огромное спасибо за материал. Будет ли урок по полноценной аутентификации с refresh сессиями?

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +2

      Пожалуйста!
      Да, про обновление токена тоже расскажу в одном из следующих видео

    • @voronin911
      @voronin911 Год назад

      Очень ждём и спасибо за ваши труды!!!!❤

  • @Artem-sz4rc
    @Artem-sz4rc 7 месяцев назад +1

    легенда

  • @iRespectOnlyYen
    @iRespectOnlyYen Год назад +1

    🔥🔥🔥

  • @__name__397
    @__name__397 10 месяцев назад +1

    Сурен, спасибо большое за видео! Было очень познавательно.
    У меня возник такой вопрос после просмотра видео
    Есть такое понятие как готовая аутентификация
    Получается, это понятие не относится к нашей, так как мы писали его сами?
    Или же наша аутентификация считается "готовой"?
    Спасибо за ответ!

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Привет! Показанная аутентификация не может считаться готовой, там ещё требуются доработки, как минимум создание refresh токена.
      На самом деле существуют готовые решения, разные решения. Про них мы ещё поговорим в дальнейшем

  • @ondest5059
    @ondest5059 3 месяца назад +1

    А вот в микросервисной архитектуре это как применяется? То есть один сервис выпускает токены, а остальные просто проверяют по публичному ключу или как это работает, можете подробнее рассказать?

    • @SurenKhorenyan
      @SurenKhorenyan  3 месяца назад

      @@ondest5059 сервер аутентификации выпускает токен, пользователь с этим токеном ходит в приложения. Приложения получают токен и проверяют на сервере аутентификации валидность токена

  • @sveterrr
    @sveterrr 8 месяцев назад +1

    дякую

  • @tonyborbozo
    @tonyborbozo 7 месяцев назад +1

    при попытки генерации ключей,
    выдало 'openssl' is not recognized as an internal or external command,
    operable program or batch file.

    • @SurenKhorenyan
      @SurenKhorenyan  7 месяцев назад

      поставьте openssl. Или сделайте через python secrets:
      python -c 'import secrets; print(secrets.token_hex())'

  • @nerassstraivaisya
    @nerassstraivaisya Год назад

    Сурен привет! А есть в планах записать ролик на тему тестирования этого приложения через pytest? Было бы очень здорово:)

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +1

      Привет! В планах есть, сроков пока нет

  • @sveterrr
    @sveterrr 5 месяцев назад +1

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

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

      А вы с базой данных сверяете? Сам по себе токен сгорит только по истечении времени. А чтобы валидировать через базу нужно дописывать логику

    • @sveterrr
      @sveterrr 5 месяцев назад +1

      @@SurenKhorenyan валидные токены хранятся у пользователя в браузере, запись не идет в бд. Но есть модель TokenBlackList, где хранится токен при логауте. Потом обычно проверяется нет ли такого токена в блеклости. Но в свагере там, где замочек логаут не идет автоматом, можно ли это как-то переопределить?
      + Получается надо будет во всех роутах дополнительно где требуется логин делать депендс от функции проверки токена?
      Еще вопрос можно ли рассмотреть возможность реализации логаута, где будет с куки в браузере удаляться токен без всего остального? или такое не канает

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

      ​@@sveterrr понял
      - сваггер при "выходе" просто забывает токен. Чтобы реально сделать ваш логаут, необходимо дёрнуть апи
      - проверять нужно везде, да
      Лучше в тг чате обсудить, тут неудобно и долго. Рад буду подсказать

  • @dimkas4284
    @dimkas4284 Год назад +1

    Прекрасное видео, я бы хотел спросить, получается когда пользователь введет логин пароль по эндпойнту login, то автоматически создается токен и после этого, когда он сделает get запрос на какой нибудь эндпойнт, где в аргумент функции через depends будет вызван get_current_user то нам уже не надо будет руками вводить токен, верно? достаточно один раз залогиниться

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

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

  • @ГлебФёдоров-ч1л
    @ГлебФёдоров-ч1л 6 месяцев назад +1

    а как в ходе работы быть с токеном? мне каждый раз вручную прописывать добавление его в заголовки или есть какая-то автоматизация?

    • @SurenKhorenyan
      @SurenKhorenyan  6 месяцев назад +1

      Если у вас жээс приложение на фронте, то там обычно да, сохраняют в localstorage и добавляют в заголовки каждый раз.
      Если у вас всё на server side rendering, то вам подходит установка этого токена в куки, тогда браузер будет автоматически эти куки слать

    • @ГлебФёдоров-ч1л
      @ГлебФёдоров-ч1л 6 месяцев назад +1

      @@SurenKhorenyan а, получается работа фронтендера, а не моя, понял, огромное спасибо!!! классная серия видео!

    • @SurenKhorenyan
      @SurenKhorenyan  6 месяцев назад

      @@ГлебФёдоров-ч1л ага. Пожалуйста!

  • @oleksandr7201
    @oleksandr7201 Год назад +1

    Здравствуйте, Сурен!
    Спасибо за такой качественный контент!
    Подскажите еще, пожалуйста, а как правильно сделать logout?
    Как я понимаю, у клиента в браузере каким то образом необходимо удалить токен?

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +2

      Пожалуйста!
      Чтобы именно пользователь выполнил выход, достаточно "забыть" токен на фронте (на клиенте)
      А если нужно сделать так, чтобы токен больше не был валидным - это надо использовать другой подход, когда мы следим за каждым выпущенным токеном (с помощью базы данных), но это уже совсем другая история

    • @voronin911
      @voronin911 Год назад +2

      Я передаю токен, через cookies, а для logout на сервере ендпоинт logout где эта кука удаляется

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@voronin911 отличный способ!

  • @ИванШалутов
    @ИванШалутов Год назад +1

    Привет. Было бы полезно также узнать как сделать проверку почты при регистрации. То есть, мы регистрируемся, и нам на почту отправляется письмо со ссылкой по которой нужно перейти для завершения регистрации. Также кнопка забыли пароль, с функционалом по отправке письма для сброса пароля.

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Привет, спасибо! Классная идея, надо будет такое тоже показать

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

    Коллеги подскажите на видео все параметры функции переносятся автоматически построчно. Но при активированном форматере black он их собирает в одну строку даже если я руками перенёс их на разные. Как с этим бороться.
    мне удобнее вид:
    def decode_jwt(
    token: str,
    key: str,
    algorithm: str
    ):
    decoded = jwt.decode(token, public_key, algorithms=[algorithm])
    return decoded
    а сейчас вот так у меня
    def decode_jwt(token: str, key: str, algorithm: str):
    decoded = jwt.decode(token, public_key, algorithms=[algorithm])
    return decoded

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

      Здравствуйте. После последнего параметра функции докиньте запятую. И всё будет на новых строчках

  • @nv1889
    @nv1889 Год назад +1

    Привет, подскажи, пожалуйста, на 10:30 как ты создал файл ридми?

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Привет! В данном случае я вставил файл, который подготовил и скопировал заранее. А так, чтобы создать новый файл, достаточно кликнуть правой клавишей, выбрать new file и написать в названии README (точка) md

    • @nv1889
      @nv1889 Год назад +1

      Понял, спасибо!
      Еще вопрос: при выполнении команды в терминале "openssl genrsa -out jwt-private.pem 2048" пайчарм мне пишет: '"openssl" не является внутренней или внешней
      командой, исполняемой программой или пакетным файлом.'
      Как быть?
      @@SurenKhorenyan

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@nv1889 у вас не установлен OpenSSL, вот нашёл инструкцию как в PowerShell на Windows поставить linuxhint.com/openssl-windows-10/

  • @pavelhomov
    @pavelhomov Год назад +1

    Есть еще библиотека FastAPIUsers, разве она не лучше для данного решения? Там еще и OAuth2 с коробки

    • @pavelhomov
      @pavelhomov Год назад

      и гораздо проще подключается

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Есть, расскажу
      Для того, чтобы понимать, как вообще работает это всё, начинаю издалека

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад +3

      @@pavelhomov обязательно посмотрим в новых видео

  • @uathon4379
    @uathon4379 Год назад +1

    У меня вопросик, не могу поняк как сохранять в куках авторизацию по oauth2passwordbearer. После релоада авторизация пропадает и надо заново авторизироваться.

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      привет! приходите в тг чат, там подскажут. пока не очень понимаю проблему, надо посмотреть, что приходит в ответ от сервера, как сохраняется кука.

  • @vadimv1501
    @vadimv1501 Год назад +1

    как bcrypt понимает что пароль соответствует хэшу(с солью), ведь мы не передаем в него соль повторно? где почитать об этом? никак не могу разобраться

    • @vadimv1501
      @vadimv1501 Год назад +1

      как я понял, соль передается вместе с хэшем пароля в одной строке. если украсть хэш, то украдется и соль. разве это не проблема? (или даже если знаешь соль, ускорить брудфорс пароля это не поможет?)

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@vadimv1501 верно, соль будет в строке вместе с хэшем, разделяется обычно долларом.
      Да, зная соль будет легче брутфорсить. Но так как делается не одна итерация хэшироаания, а сотни и тысячи, всё равно перебрать довольно сложно

    • @vadimv1501
      @vadimv1501 Год назад

      @@SurenKhorenyan В реальном проекте такой способ хранения паролей подойдет, или есть более популярные практики? (возможно какой-то конкретный алгоритм хэширования)

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@vadimv1501 в реальном проекте подойдёт, джанго так и делает, только может применять другой алгоритм хэширования

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

    всегда думал, что python-jose читается как Хосе с ударением на е, на испанский манер

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

      Хмм, вполне вероятно. Звучит очень правдоподобно. Я не задумывался просто и читал как написано

  • @CounterSuny
    @CounterSuny 9 месяцев назад +1

    жаль, что в OAuth2PasswordBearer нельзя использовать вместо username какой-нибудь email или login. Я читал где-то решение этой проблемы, но пока без костылей и велосипедов её нормально не решить. Больше всего поржал от документации fastapi где написано что-то вроде: "Забейте, для конечного пользователя вы можете использовать свои обозначения, но на стороне сервера это должно быть username"))))

    • @SurenKhorenyan
      @SurenKhorenyan  9 месяцев назад

      Ха, прикол. Не сталкивался.
      При желании можно сделать свою обертку

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ Год назад

    Да уж, тема достаточно сложная и обширная. Это надо пару раз как минимум пересмартивать.
    PS первый раз увидел наглядное применение оператора "моржа"

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      Действительно, тема большая. Помимо пересмотра видео хорошо бы ещё применить полученные знания на практике!

    • @ГубкаБоб-р8ъ
      @ГубкаБоб-р8ъ Год назад

      @@SurenKhorenyan согласен, но я пока еще недостаточно освоил джанго, пока борюсь с ним. Может я зря опасаюсь что если параллельно начну писать на FastAPI то запутаюсь? Не знаю

    • @SurenKhorenyan
      @SurenKhorenyan  Год назад

      @@ГубкаБоб-р8ъ вряд ли запутаетесь, это довольно разные фреймворки

  • @DaniilReshetnev
    @DaniilReshetnev 10 месяцев назад

    Последнее обновление библиотеки JWT Auth 30 минут назад

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Круто! Надо будет заглянуть, спасибо за информацию

    • @SurenKhorenyan
      @SurenKhorenyan  10 месяцев назад

      Добрый день. А вы про какую библиотеку? FastAPI JWT Auth обновлялась более четырех лет назад, python-jose обновлялась три года назад. Да даже библиотека PyJWT, которую я в видео рекомендую, обновлялась год назад. Скиньте ссылку тут или приходите обсуждать в чат в телеграм

    • @aqarys.devlog
      @aqarys.devlog 6 месяцев назад

      @@SurenKhorenyan А какую используют в итоге на проде все проекты?

    • @SurenKhorenyan
      @SurenKhorenyan  6 месяцев назад

      ​@@aqarys.devlog реальные проекты используют third party для аутентификации и авторизации. Облачный Firebase или self hosted Keycloak

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

    мне кажется, я тупой

    • @SurenKhorenyan
      @SurenKhorenyan  5 месяцев назад +1

      Вам только кажется, на самом деле это не так!