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

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

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

  • @sinsinegobaffa7321
    @sinsinegobaffa7321 8 หลายเดือนก่อน +6

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

    • @SurenKhorenyan
      @SurenKhorenyan  8 หลายเดือนก่อน +1

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

  • @AlexanderITandEng
    @AlexanderITandEng 3 หลายเดือนก่อน +4

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

    • @SurenKhorenyan
      @SurenKhorenyan  3 หลายเดือนก่อน +2

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

  • @saitaro
    @saitaro 11 หลายเดือนก่อน +5

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +5

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

  • @cherdak_turista
    @cherdak_turista 11 หลายเดือนก่อน +11

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +6

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

  • @Alex-zl7wg
    @Alex-zl7wg 2 หลายเดือนก่อน +2

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

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

      Спасибо! Рад 🥰

  • @sayomortal
    @sayomortal 4 หลายเดือนก่อน +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  4 หลายเดือนก่อน

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

  • @helloiveqw5290
    @helloiveqw5290 3 หลายเดือนก่อน +2

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

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

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

  • @antonmislawsky
    @antonmislawsky 8 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  8 หลายเดือนก่อน

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

  • @АнтонКородян
    @АнтонКородян 3 หลายเดือนก่อน +1

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

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

      Пожалуйста!

  • @Viktor-b3k
    @Viktor-b3k 11 หลายเดือนก่อน +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @mukhamedzhumabekoff7642
    @mukhamedzhumabekoff7642 10 หลายเดือนก่อน +1

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

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

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

  • @yurypaulouski1593
    @yurypaulouski1593 8 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  8 หลายเดือนก่อน +1

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

  • @Alex89muller
    @Alex89muller 4 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  4 หลายเดือนก่อน +1

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

    • @Alex89muller
      @Alex89muller 4 หลายเดือนก่อน +1

      @@SurenKhorenyan 😂🤷‍♂️

  • @МаксМаисеев-ч3з
    @МаксМаисеев-ч3з 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @dazdik
    @dazdik 10 หลายเดือนก่อน +1

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

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

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

  • @lifestyletv139
    @lifestyletv139 11 หลายเดือนก่อน +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @twenty1th
    @twenty1th 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @stvJnK
    @stvJnK 11 หลายเดือนก่อน +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  11 หลายเดือนก่อน +1

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

  • @Давид-у3д7ж
    @Давид-у3д7ж 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @Борщкот
    @Борщкот 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @Katar1x
    @Katar1x 10 หลายเดือนก่อน +4

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

    • @SurenKhorenyan
      @SurenKhorenyan  10 หลายเดือนก่อน +1

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

    • @Katar1x
      @Katar1x 10 หลายเดือนก่อน +1

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

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

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

  • @Паша-н9ь
    @Паша-н9ь 2 หลายเดือนก่อน

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

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

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

  • @NikitaProfir
    @NikitaProfir 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

      Пожалуйста!

  • @nerassstraivaisya
    @nerassstraivaisya 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +2

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

  • @user-fm1552
    @user-fm1552 10 หลายเดือนก่อน +1

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

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

      Супер! Пожалуйста!

  • @HumoyunAhmedov-g9r
    @HumoyunAhmedov-g9r 9 หลายเดือนก่อน +2

    Спасибо вам!

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

      Пожалуйста!

  • @МихаилЕфимов-м3у
    @МихаилЕфимов-м3у 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @pierredechardin6340
    @pierredechardin6340 11 หลายเดือนก่อน +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +2

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

    • @voronin911
      @voronin911 11 หลายเดือนก่อน

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

  • @Mr_Endorphin_vod
    @Mr_Endorphin_vod 10 หลายเดือนก่อน +1

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

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

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

  • @ВикторГлухов-р3ь
    @ВикторГлухов-р3ь 10 หลายเดือนก่อน

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

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

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

    • @ВикторГлухов-р3ь
      @ВикторГлухов-р3ь 10 หลายเดือนก่อน +1

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

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

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

  • @arturzhukovets7951
    @arturzhukovets7951 7 หลายเดือนก่อน +1

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

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

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

    • @arturzhukovets7951
      @arturzhukovets7951 7 หลายเดือนก่อน +1

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

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

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

  • @__name__397
    @__name__397 8 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  8 หลายเดือนก่อน

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

  • @iRespectOnlyYen
    @iRespectOnlyYen 11 หลายเดือนก่อน +1

    🔥🔥🔥

  • @Artem-sz4rc
    @Artem-sz4rc 5 หลายเดือนก่อน +1

    легенда

    • @SurenKhorenyan
      @SurenKhorenyan  5 หลายเดือนก่อน

      Спасибо! 🥰

  • @georgedudaev8738
    @georgedudaev8738 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +1

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

    • @georgedudaev8738
      @georgedudaev8738 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +1

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

    • @georgedudaev8738
      @georgedudaev8738 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @oleksandr7201
    @oleksandr7201 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +2

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

    • @voronin911
      @voronin911 11 หลายเดือนก่อน +2

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @user-fo8yv6cf9h
    @user-fo8yv6cf9h 5 หลายเดือนก่อน +1

    дякую

    • @SurenKhorenyan
      @SurenKhorenyan  5 หลายเดือนก่อน

      Пожалуйста 😊

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

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

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

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

  • @ondest5059
    @ondest5059 18 วันที่ผ่านมา +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  18 วันที่ผ่านมา

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

  • @pavelhomov
    @pavelhomov 11 หลายเดือนก่อน +1

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

    • @pavelhomov
      @pavelhomov 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน +3

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

  • @tonyborbozo
    @tonyborbozo 4 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  4 หลายเดือนก่อน

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

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

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

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

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

  • @ИванШалутов
    @ИванШалутов 10 หลายเดือนก่อน +1

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

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

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

  • @ГлебФёдоров-ч1л
    @ГлебФёдоров-ч1л 4 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  4 หลายเดือนก่อน +1

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

    • @ГлебФёдоров-ч1л
      @ГлебФёдоров-ч1л 4 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  4 หลายเดือนก่อน

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

  • @nv1889
    @nv1889 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

    • @nv1889
      @nv1889 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

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

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

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

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

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

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

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

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

  • @uathon4379
    @uathon4379 10 หลายเดือนก่อน +1

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

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

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

  • @vadimv1501
    @vadimv1501 11 หลายเดือนก่อน +1

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

    • @vadimv1501
      @vadimv1501 11 หลายเดือนก่อน +1

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

    • @vadimv1501
      @vadimv1501 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @CounterSuny
    @CounterSuny 6 หลายเดือนก่อน +1

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

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

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

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

    • @ГубкаБоб-р8ъ
      @ГубкаБоб-р8ъ 11 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  11 หลายเดือนก่อน

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

  • @DaniilReshetnev
    @DaniilReshetnev 8 หลายเดือนก่อน

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

    • @SurenKhorenyan
      @SurenKhorenyan  8 หลายเดือนก่อน

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

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

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

    • @aqarys.devlog
      @aqarys.devlog 3 หลายเดือนก่อน

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

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

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

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

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

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

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