Если бы не ты и этот замечательный плейлист, я не знаю что бы я делал с дипломом, посмотрел все ролики по нескольку раз, и пишу параллельно апку, ты как научрук))) спасибо!)
Сурен, Вы просто легенда. Спасибо вам за такие информативные ролики, где вы показываете не только как сделать, но и как принято/правильно делать. Тем самым создается отличная база знаний для разработчика и он не будет белой вороной в команде. Спасибо Вам!! Продолжайте в том же духе💪💪💪
Крутяк, пожалуйста! Конечно, до знания всего ещё долго добираться, да и нужно не только посмотреть, а ещё и написать это своими руками, но круто, что вы осилили все видео!
Очень классное и понятное видео. Мне как человеку который долгую часть времени изучал плюсы приятно что везде указываются типы данных так как в других видео просто переменные и что где и как хранится не понятно)
Сурен, спасибо большое за проделанную работу! Очень полезно и крайне детально. Планируете ли продолжение этой серии? Думаю, там есть еще очень моногое, о чём можно рассказать.
Привет! Супер материал, для меня открытие было про использование RSA. Тема сложная, но у Вас подача материала очень хорошая :) . Жду с нетерпением продолжение. Если будет возможность хотелось бы услышать про Refresh токены как этот механизм работает и какие у него особенности (сколько не разбирался не могу понять принцип обновления и хранения в каких-то http-only в куках, local storage). Мучают вопросы момента обновления токенов: 1. Например время жизни Access 15 минут, соответственно пользователь вернулся через 2 часа и так как Access протух, то смотрим Refresh токен. И обновляем Access и Refresh или только Access. 2. В процессе пользования Access токена, система видит, что подходит время и обновляет Access или работаем как в 1 пункте и смотрим на Refresh и меняем только Access или Refresh тоже...
Привет! Класс, я рад, что понравилось 😊 Про рефреш тоже будет позже, в рамках большого видео по авторизации. По рефрешу вы написали два подхода, которые могут использоваться отдельно друг от друга, а также вместе. Всё зависит от реализации
@@SurenKhorenyan Без проблем👌для тех кто читает, тест заключается в написании 2х енд поинтов. 1й аутентификация, регистрация (jwt), возможность смены пароля. 2й перевод средств (транзакциии). Считаю, что это многовато для тестового, но хотя в бэкенде опыта у меня не много. Подскажите, плиз народ или автор, это ту мач?
Нужна серия роликов по созданию проекта КАК на проде. То есть взять тематику для примера и с нуля пройти этапы проектирования бд, построения архитектуры, и т д
Привет, всё отличено, единственный момент который стоит делать по другому это 37:40, где используется utcnow(), который признан deprecated в 3.12. Можно почитать обсуждение по этому поводу на форуме discuss python в теме "Deprecating `utcnow` and `utcfromtimestamp`"
привет, спасибо! да, я в курсе про deprecation warning в 3.12. пока что его нигде не используют, так что не страшно. да и в ворнинге написано, как заменить
Здравствуйте, Сурен! Большое Вам спасибо за ваши видео - это самый подробный курс по fastapi, который встречал! Успехов в развитии вашего канала:) И подскажите пожалуйста, не планируете ли вы разобрать RabbitMQ? Он очень часто встречается на проектах, но пока не встречал адекватных видео в связке с python
Добрый день! Пожалуйста! Я рад, что вам нравится, мне очень приятно. Спасибо большое! Дальше больше 💪 По RabbitMQ планирую сделать видео, тема очередей задач очень важна. Просто пока по теме видео мы даже и близко не добрались. Когда-нибудь обязательно будет, может быть даже в этом году 🙂
А вот в микросервисной архитектуре это как применяется? То есть один сервис выпускает токены, а остальные просто проверяют по публичному ключу или как это работает, можете подробнее рассказать?
@@ondest5059 сервер аутентификации выпускает токен, пользователь с этим токеном ходит в приложения. Приложения получают токен и проверяют на сервере аутентификации валидность токена
Спасибо за урок! Очень круто! А можешь тезисно описать хронологию использования вот такого вот способа аутентификации со стороны фронта? Я хочу использовать React. Если конкретнее то куда правильнее всего положить этот токен для использования в других запросах? И будет ли это вообще корректно использовать такой способ auth для обычного сайта или jwt auth используется только для каких-то сервисных АПИ?
Фронт сохраняет токен в local storage, каждый раз в запросе указывает По аналогии ещё нужен refresh token, у которого срок жизни больше. И при помощи этого токена надо обновлять обычный. Когда-нибудь это тоже покажу 🙂
Если у вас жээс приложение на фронте, то там обычно да, сохраняют в localstorage и добавляют в заголовки каждый раз. Если у вас всё на server side rendering, то вам подходит установка этого токена в куки, тогда браузер будет автоматически эти куки слать
как сделать логаут при такой реализации. у меня как у тебя, но подключена бд. Пробувала через занос токена в блеклист, но в свагере он все равно сохраняеться
@@SurenKhorenyan валидные токены хранятся у пользователя в браузере, запись не идет в бд. Но есть модель TokenBlackList, где хранится токен при логауте. Потом обычно проверяется нет ли такого токена в блеклости. Но в свагере там, где замочек логаут не идет автоматом, можно ли это как-то переопределить? + Получается надо будет во всех роутах дополнительно где требуется логин делать депендс от функции проверки токена? Еще вопрос можно ли рассмотреть возможность реализации логаута, где будет с куки в браузере удаляться токен без всего остального? или такое не канает
@@user-fo8yv6cf9h понял - сваггер при "выходе" просто забывает токен. Чтобы реально сделать ваш логаут, необходимо дёрнуть апи - проверять нужно везде, да Лучше в тг чате обсудить, тут неудобно и долго. Рад буду подсказать
Привет! В данном случае я вставил файл, который подготовил и скопировал заранее. А так, чтобы создать новый файл, достаточно кликнуть правой клавишей, выбрать new file и написать в названии README (точка) md
Понял, спасибо! Еще вопрос: при выполнении команды в терминале "openssl genrsa -out jwt-private.pem 2048" пайчарм мне пишет: '"openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.' Как быть? @@SurenKhorenyan
Привет, спасибо большое за плейлист по фастапи, очень качественно преподаешь! Было бы круто, если бы ты сделал ролик по созданию полноценного многомодульного приложения, где разные апишки общаются между собой 😊
Сурен, спасибо большое за видео! Было очень познавательно. У меня возник такой вопрос после просмотра видео Есть такое понятие как готовая аутентификация Получается, это понятие не относится к нашей, так как мы писали его сами? Или же наша аутентификация считается "готовой"? Спасибо за ответ!
Привет! Показанная аутентификация не может считаться готовой, там ещё требуются доработки, как минимум создание refresh токена. На самом деле существуют готовые решения, разные решения. Про них мы ещё поговорим в дальнейшем
как я понял, соль передается вместе с хэшем пароля в одной строке. если украсть хэш, то украдется и соль. разве это не проблема? (или даже если знаешь соль, ускорить брудфорс пароля это не поможет?)
@@vadimv1501 верно, соль будет в строке вместе с хэшем, разделяется обычно долларом. Да, зная соль будет легче брутфорсить. Но так как делается не одна итерация хэшироаания, а сотни и тысячи, всё равно перебрать довольно сложно
@@SurenKhorenyan В реальном проекте такой способ хранения паролей подойдет, или есть более популярные практики? (возможно какой-то конкретный алгоритм хэширования)
У меня вопросик, не могу поняк как сохранять в куках авторизацию по oauth2passwordbearer. После релоада авторизация пропадает и надо заново авторизироваться.
Прекрасное видео, я бы хотел спросить, получается когда пользователь введет логин пароль по эндпойнту login, то автоматически создается токен и после этого, когда он сделает get запрос на какой нибудь эндпойнт, где в аргумент функции через depends будет вызван get_current_user то нам уже не надо будет руками вводить токен, верно? достаточно один раз залогиниться
Спасибо. Ну, не совсем так. Нам всё равно надо будет логиниться снова. Наш токен живёт ограниченное время. Токен надо обязательно передавать в заголовке
Сурен, добрый день, спасибо, что подробно объясняешь! другие блогеры поверхностно пробегаются или просят покупать платные курсы, но ни у одного даже на платных не увидел как грамотно сделать аутентификацию и авторизацию с access и refresh токенами, может ты хотя бы возьмешь на вооружение, а то так нигде и не нашел как сделать именно грамотную авторизацию, а не просто access токен, он ведь живет всего лишь 15-30 минут, было б круто если бы прям рассказал как это работает и показал, для чего нужен рефреш токен, и как с его помощью рефрешатся эти токены
@@SurenKhorenyan могу помочь как человек пытающийся все это реализовать, вопросы возникающие у людей, что непонятно, это все рассказать, думаю если сделаешь полноценный модуль авторизации, с эндпоинтами смены пароля и сброса пароля, и это все на бусти, много подписок обеспечено!
@@georgedudaev8738 конечно, пишите ваши вопросы! я пока ещё не подготовил сценарий по этой теме, ресерч ещё впереди, так что любая информация пригодится
Привет. Было бы полезно также узнать как сделать проверку почты при регистрации. То есть, мы регистрируемся, и нам на почту отправляется письмо со ссылкой по которой нужно перейти для завершения регистрации. Также кнопка забыли пароль, с функционалом по отправке письма для сброса пароля.
Здравствуйте, Сурен! Спасибо за такой качественный контент! Подскажите еще, пожалуйста, а как правильно сделать logout? Как я понимаю, у клиента в браузере каким то образом необходимо удалить токен?
Пожалуйста! Чтобы именно пользователь выполнил выход, достаточно "забыть" токен на фронте (на клиенте) А если нужно сделать так, чтобы токен больше не был валидным - это надо использовать другой подход, когда мы следим за каждым выпущенным токеном (с помощью базы данных), но это уже совсем другая история
жаль, что в OAuth2PasswordBearer нельзя использовать вместо username какой-нибудь email или login. Я читал где-то решение этой проблемы, но пока без костылей и велосипедов её нормально не решить. Больше всего поржал от документации fastapi где написано что-то вроде: "Забейте, для конечного пользователя вы можете использовать свои обозначения, но на стороне сервера это должно быть username"))))
@@SurenKhorenyan согласен, но я пока еще недостаточно освоил джанго, пока борюсь с ним. Может я зря опасаюсь что если параллельно начну писать на FastAPI то запутаюсь? Не знаю
Добрый день. А вы про какую библиотеку? FastAPI JWT Auth обновлялась более четырех лет назад, python-jose обновлялась три года назад. Да даже библиотека PyJWT, которую я в видео рекомендую, обновлялась год назад. Скиньте ссылку тут или приходите обсуждать в чат в телеграм
Если бы не ты и этот замечательный плейлист, я не знаю что бы я делал с дипломом, посмотрел все ролики по нескольку раз, и пишу параллельно апку, ты как научрук))) спасибо!)
Крутяк! Я рад, что вам помогло
Сурен, добрый вечер! Спасибо за качественные видео! Пожалуйста, не останавливайся) У тебя талант
Добрый вечер. Пожалуйста!
Очень приятно. Останавливаться не планирую ☺
Сурен, Вы просто легенда. Спасибо вам за такие информативные ролики, где вы показываете не только как сделать, но и как принято/правильно делать. Тем самым создается отличная база знаний для разработчика и он не будет белой вороной в команде. Спасибо Вам!! Продолжайте в том же духе💪💪💪
@@AlexanderITandEng кайф, пожалуйста! Очень приятно, я рад 🥰
Спасибо за теплые слова 😊
Превосходная подача материала! Всё подробно и в то же время ничего лишнего. Преподавать ваше призвание! Спасибо за курс.
Спасибо! Рад 🥰
Я осилил этот плейлист, и теперь знаю всё о программировании! Сурен меня всему научил. Спасибо, Сурен!
Крутяк, пожалуйста!
Конечно, до знания всего ещё долго добираться, да и нужно не только посмотреть, а ещё и написать это своими руками, но круто, что вы осилили все видео!
Блин, у тебя просто офигенная подача материала, все по делу, с нужными пояснениями, без инфоцыганства. Рад, что вышел на этот канал
Кайф! Спасибо, очень приятно 🥰
Очень классное и понятное видео. Мне как человеку который долгую часть времени изучал плюсы приятно что везде указываются типы данных так как в других видео просто переменные и что где и как хранится не понятно)
@@helloiveqw5290 кайф! Я рад, что вам понравилось 🥰
Спасибо
Классные уроки очень высокого уровня без воды
спасибо
Кайф, я рад, что вам понравилось! Пожалуйста! 🥰
Это лучший материал по auth который мне попался. Наверно, благодаря лучшему автору!
Круто, спасибо большое! Очень приятно 🥰
Сурен, Спасибо за видео! Очень круто. Правда на замедленной перемотки приходится смотреть - очень быстро. В остальном объяснения прям супер.
Пожалуйста!
Хах. И так стараюсь медленнее говорить.. 😅 ещё тренируюсь
@@SurenKhorenyan 😂🤷♂️
Спасибо вам большое за такой детальный материал,
перехожу с django и скажу разница существенная.
Пожалуйста!
Сурен, спасибо большое за проделанную работу! Очень полезно и крайне детально.
Планируете ли продолжение этой серии? Думаю, там есть еще очень моногое, о чём можно рассказать.
Пожалуйста!
Да, продолжение обязательно будет. Возможно, успею весной ещё пару роликов по теме выпустить
отличная работа, название == содержание, никакого кликбейта, спасибо!
спасибо! рад трудиться ☺
рад, что понравилось
Топ. То, что надо, лучший контент в мире по фастапи!!! Продолжай
Кайф, спасибо! Очень приятно 🥰
Я рад трудиться
Привет, спасибо за информацию, до того как нашёл твои видео смотрел другого ютубера по фаст апи но увидел тебя и стал смотреть твои видео
Привет, пожалуйста!
Класс, приятно ☺
Привет! Супер материал, для меня открытие было про использование RSA. Тема сложная, но у Вас подача материала очень хорошая :) . Жду с нетерпением продолжение.
Если будет возможность хотелось бы услышать про Refresh токены как этот механизм работает и какие у него особенности (сколько не разбирался не могу понять принцип обновления и хранения в каких-то http-only в куках, local storage).
Мучают вопросы момента обновления токенов:
1. Например время жизни Access 15 минут, соответственно пользователь вернулся через 2 часа и так как Access протух, то смотрим Refresh токен. И обновляем Access и Refresh или только Access.
2. В процессе пользования Access токена, система видит, что подходит время и обновляет Access или работаем как в 1 пункте и смотрим на Refresh и меняем только Access или Refresh тоже...
Привет! Класс, я рад, что понравилось 😊
Про рефреш тоже будет позже, в рамках большого видео по авторизации.
По рефрешу вы написали два подхода, которые могут использоваться отдельно друг от друга, а также вместе. Всё зависит от реализации
Как всегда красавчик 👍 спасибо, пойду делать тестовое по этому видосу🙂
Кайф, удачи!
Кстати, если несложно, поделитесь плиз тестовым. Можно в личке (все ссылки в описании канала)
@@SurenKhorenyan Без проблем👌для тех кто читает, тест заключается в написании 2х енд поинтов. 1й аутентификация, регистрация (jwt), возможность смены пароля.
2й перевод средств (транзакциии).
Считаю, что это многовато для тестового, но хотя в бэкенде опыта у меня не много. Подскажите, плиз народ или автор, это ту мач?
Отличное видео, как всегда. Спасибо за работу!
Класс! Рад, что вам понравилось 🥰
Пожалуйста
Нужна серия роликов по созданию проекта КАК на проде.
То есть взять тематику для примера и с нуля пройти этапы проектирования бд, построения архитектуры, и т д
Есть такое в планах, всё никак не решу, что именно делать. Хочется какой-то полезный, но несложный проект
Сайт-хранилище с мемами можно)@@SurenKhorenyan
так для этого телеграм-каналы есть 🙂
лучший видос, помог разобраться с ошибкой в проекте 🔥
Крутяк! Я рад, что у вас получилось, и что я смог помочь 🥰
Топчик, отдельный респект за таймкоды
Супер! Не зря я их выписывал 😅
Привет, всё отличено, единственный момент который стоит делать по другому это 37:40, где используется utcnow(), который признан deprecated в 3.12. Можно почитать обсуждение по этому поводу на форуме discuss python в теме "Deprecating `utcnow` and `utcfromtimestamp`"
привет, спасибо!
да, я в курсе про deprecation warning в 3.12. пока что его нигде не используют, так что не страшно. да и в ворнинге написано, как заменить
Огромное спасибо за контент!
Пожалуйста!
Спасибо за материал!
10:30 сижу и не понимаю, откуда эти команды у меня в README должны появиться))))
Пожалуйста! Это я их так незаметно успел скопировать. И вставил после создания файла 😅
Благодарю за контент!
@@SurenKhorenyan
Пожалуйста! Рад, что вам нравится
Здравствуйте, Сурен! Большое Вам спасибо за ваши видео - это самый подробный курс по fastapi, который встречал! Успехов в развитии вашего канала:)
И подскажите пожалуйста, не планируете ли вы разобрать RabbitMQ? Он очень часто встречается на проектах, но пока не встречал адекватных видео в связке с python
Добрый день! Пожалуйста!
Я рад, что вам нравится, мне очень приятно.
Спасибо большое! Дальше больше 💪
По RabbitMQ планирую сделать видео, тема очередей задач очень важна. Просто пока по теме видео мы даже и близко не добрались. Когда-нибудь обязательно будет, может быть даже в этом году 🙂
Вот спасибо тебе, Сурен! Не прямо, но опосредовано помог найти решение моей траблы :)
Круто, пожалуйста! Рад помочь 🥰
А вот в микросервисной архитектуре это как применяется? То есть один сервис выпускает токены, а остальные просто проверяют по публичному ключу или как это работает, можете подробнее рассказать?
@@ondest5059 сервер аутентификации выпускает токен, пользователь с этим токеном ходит в приложения. Приложения получают токен и проверяют на сервере аутентификации валидность токена
при попытки генерации ключей,
выдало 'openssl' is not recognized as an internal or external command,
operable program or batch file.
поставьте openssl. Или сделайте через python secrets:
python -c 'import secrets; print(secrets.token_hex())'
классная подача материала ! спсб !
Супер! Пожалуйста!
Спасибо за урок! Очень круто! А можешь тезисно описать хронологию использования вот такого вот способа аутентификации со стороны фронта? Я хочу использовать React. Если конкретнее то куда правильнее всего положить этот токен для использования в других запросах?
И будет ли это вообще корректно использовать такой способ auth для обычного сайта или jwt auth используется только для каких-то сервисных АПИ?
Фронт сохраняет токен в local storage, каждый раз в запросе указывает
По аналогии ещё нужен refresh token, у которого срок жизни больше. И при помощи этого токена надо обновлять обычный.
Когда-нибудь это тоже покажу 🙂
Будет здорово. А так спасибо за ролики по FASTAPI, это как глоток свежего воздуха
@@arturzhukovets7951 пожалуйста!
а как в ходе работы быть с токеном? мне каждый раз вручную прописывать добавление его в заголовки или есть какая-то автоматизация?
Если у вас жээс приложение на фронте, то там обычно да, сохраняют в localstorage и добавляют в заголовки каждый раз.
Если у вас всё на server side rendering, то вам подходит установка этого токена в куки, тогда браузер будет автоматически эти куки слать
@@SurenKhorenyan а, получается работа фронтендера, а не моя, понял, огромное спасибо!!! классная серия видео!
@@ГлебФёдоров-ч1л ага. Пожалуйста!
как сделать логаут при такой реализации. у меня как у тебя, но подключена бд. Пробувала через занос токена в блеклист, но в свагере он все равно сохраняеться
А вы с базой данных сверяете? Сам по себе токен сгорит только по истечении времени. А чтобы валидировать через базу нужно дописывать логику
@@SurenKhorenyan валидные токены хранятся у пользователя в браузере, запись не идет в бд. Но есть модель TokenBlackList, где хранится токен при логауте. Потом обычно проверяется нет ли такого токена в блеклости. Но в свагере там, где замочек логаут не идет автоматом, можно ли это как-то переопределить?
+ Получается надо будет во всех роутах дополнительно где требуется логин делать депендс от функции проверки токена?
Еще вопрос можно ли рассмотреть возможность реализации логаута, где будет с куки в браузере удаляться токен без всего остального? или такое не канает
@@user-fo8yv6cf9h понял
- сваггер при "выходе" просто забывает токен. Чтобы реально сделать ваш логаут, необходимо дёрнуть апи
- проверять нужно везде, да
Лучше в тг чате обсудить, тут неудобно и долго. Рад буду подсказать
Спасибо за видео !
Пожалуйста!
спасибо! Все четко и понятно!
@@Паша-н9ь пожалуйста!
Привет, подскажи, пожалуйста, на 10:30 как ты создал файл ридми?
Привет! В данном случае я вставил файл, который подготовил и скопировал заранее. А так, чтобы создать новый файл, достаточно кликнуть правой клавишей, выбрать new file и написать в названии README (точка) md
Понял, спасибо!
Еще вопрос: при выполнении команды в терминале "openssl genrsa -out jwt-private.pem 2048" пайчарм мне пишет: '"openssl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.'
Как быть?
@@SurenKhorenyan
@@nv1889 у вас не установлен OpenSSL, вот нашёл инструкцию как в PowerShell на Windows поставить linuxhint.com/openssl-windows-10/
Привет, спасибо большое за плейлист по фастапи, очень качественно преподаешь! Было бы круто, если бы ты сделал ролик по созданию полноценного многомодульного приложения, где разные апишки общаются между собой 😊
Привет, пожалуйста!
Всё впереди, может быть и до этого доберусь 🙂
Спасибо вам!
Пожалуйста!
Огромное спасибо за материал. Будет ли урок по полноценной аутентификации с refresh сессиями?
Пожалуйста!
Да, про обновление токена тоже расскажу в одном из следующих видео
Очень ждём и спасибо за ваши труды!!!!❤
Сурен, спасибо большое за видео! Было очень познавательно.
У меня возник такой вопрос после просмотра видео
Есть такое понятие как готовая аутентификация
Получается, это понятие не относится к нашей, так как мы писали его сами?
Или же наша аутентификация считается "готовой"?
Спасибо за ответ!
Привет! Показанная аутентификация не может считаться готовой, там ещё требуются доработки, как минимум создание refresh токена.
На самом деле существуют готовые решения, разные решения. Про них мы ещё поговорим в дальнейшем
как bcrypt понимает что пароль соответствует хэшу(с солью), ведь мы не передаем в него соль повторно? где почитать об этом? никак не могу разобраться
как я понял, соль передается вместе с хэшем пароля в одной строке. если украсть хэш, то украдется и соль. разве это не проблема? (или даже если знаешь соль, ускорить брудфорс пароля это не поможет?)
@@vadimv1501 верно, соль будет в строке вместе с хэшем, разделяется обычно долларом.
Да, зная соль будет легче брутфорсить. Но так как делается не одна итерация хэшироаания, а сотни и тысячи, всё равно перебрать довольно сложно
@@SurenKhorenyan В реальном проекте такой способ хранения паролей подойдет, или есть более популярные практики? (возможно какой-то конкретный алгоритм хэширования)
@@vadimv1501 в реальном проекте подойдёт, джанго так и делает, только может применять другой алгоритм хэширования
У меня вопросик, не могу поняк как сохранять в куках авторизацию по oauth2passwordbearer. После релоада авторизация пропадает и надо заново авторизироваться.
привет! приходите в тг чат, там подскажут. пока не очень понимаю проблему, надо посмотреть, что приходит в ответ от сервера, как сохраняется кука.
Прекрасное видео, я бы хотел спросить, получается когда пользователь введет логин пароль по эндпойнту login, то автоматически создается токен и после этого, когда он сделает get запрос на какой нибудь эндпойнт, где в аргумент функции через depends будет вызван get_current_user то нам уже не надо будет руками вводить токен, верно? достаточно один раз залогиниться
Спасибо.
Ну, не совсем так. Нам всё равно надо будет логиниться снова. Наш токен живёт ограниченное время. Токен надо обязательно передавать в заголовке
Сурен, добрый день, спасибо, что подробно объясняешь! другие блогеры поверхностно пробегаются или просят покупать платные курсы, но ни у одного даже на платных не увидел как грамотно сделать аутентификацию и авторизацию с access и refresh токенами, может ты хотя бы возьмешь на вооружение, а то так нигде и не нашел как сделать именно грамотную авторизацию, а не просто access токен, он ведь живет всего лишь 15-30 минут, было б круто если бы прям рассказал как это работает и показал, для чего нужен рефреш токен, и как с его помощью рефрешатся эти токены
Привет, пожалуйста!
Да, обязательно будет и как скомбинировать это всё и жить с access + refresh токенами
@@SurenKhorenyan очень жду, а то индусов смотреть устал, никто еще нормально не сделал это как надо со слоистой архитектурой
@@georgedudaev8738 просто подходов довольно много, надо про них рассказать, сравнить. будет зимой
@@SurenKhorenyan могу помочь как человек пытающийся все это реализовать, вопросы возникающие у людей, что непонятно, это все рассказать, думаю если сделаешь полноценный модуль авторизации, с эндпоинтами смены пароля и сброса пароля, и это все на бусти, много подписок обеспечено!
@@georgedudaev8738 конечно, пишите ваши вопросы! я пока ещё не подготовил сценарий по этой теме, ресерч ещё впереди, так что любая информация пригодится
Есть еще библиотека FastAPIUsers, разве она не лучше для данного решения? Там еще и OAuth2 с коробки
и гораздо проще подключается
Есть, расскажу
Для того, чтобы понимать, как вообще работает это всё, начинаю издалека
@@pavelhomov обязательно посмотрим в новых видео
Привет. Было бы полезно также узнать как сделать проверку почты при регистрации. То есть, мы регистрируемся, и нам на почту отправляется письмо со ссылкой по которой нужно перейти для завершения регистрации. Также кнопка забыли пароль, с функционалом по отправке письма для сброса пароля.
Привет, спасибо! Классная идея, надо будет такое тоже показать
Здравствуйте, Сурен!
Спасибо за такой качественный контент!
Подскажите еще, пожалуйста, а как правильно сделать logout?
Как я понимаю, у клиента в браузере каким то образом необходимо удалить токен?
Пожалуйста!
Чтобы именно пользователь выполнил выход, достаточно "забыть" токен на фронте (на клиенте)
А если нужно сделать так, чтобы токен больше не был валидным - это надо использовать другой подход, когда мы следим за каждым выпущенным токеном (с помощью базы данных), но это уже совсем другая история
Я передаю токен, через cookies, а для logout на сервере ендпоинт logout где эта кука удаляется
@@voronin911 отличный способ!
Сурен привет! А есть в планах записать ролик на тему тестирования этого приложения через pytest? Было бы очень здорово:)
Привет! В планах есть, сроков пока нет
🔥🔥🔥
🥰
дякую
Пожалуйста 😊
всегда думал, что python-jose читается как Хосе с ударением на е, на испанский манер
Хмм, вполне вероятно. Звучит очень правдоподобно. Я не задумывался просто и читал как написано
жаль, что в OAuth2PasswordBearer нельзя использовать вместо username какой-нибудь email или login. Я читал где-то решение этой проблемы, но пока без костылей и велосипедов её нормально не решить. Больше всего поржал от документации fastapi где написано что-то вроде: "Забейте, для конечного пользователя вы можете использовать свои обозначения, но на стороне сервера это должно быть username"))))
Ха, прикол. Не сталкивался.
При желании можно сделать свою обертку
легенда
Спасибо! 🥰
Да уж, тема достаточно сложная и обширная. Это надо пару раз как минимум пересмартивать.
PS первый раз увидел наглядное применение оператора "моржа"
Действительно, тема большая. Помимо пересмотра видео хорошо бы ещё применить полученные знания на практике!
@@SurenKhorenyan согласен, но я пока еще недостаточно освоил джанго, пока борюсь с ним. Может я зря опасаюсь что если параллельно начну писать на FastAPI то запутаюсь? Не знаю
@@ГубкаБоб-р8ъ вряд ли запутаетесь, это довольно разные фреймворки
Последнее обновление библиотеки JWT Auth 30 минут назад
Круто! Надо будет заглянуть, спасибо за информацию
Добрый день. А вы про какую библиотеку? FastAPI JWT Auth обновлялась более четырех лет назад, python-jose обновлялась три года назад. Да даже библиотека PyJWT, которую я в видео рекомендую, обновлялась год назад. Скиньте ссылку тут или приходите обсуждать в чат в телеграм
@@SurenKhorenyan А какую используют в итоге на проде все проекты?
@@aqarys.devlog реальные проекты используют third party для аутентификации и авторизации. Облачный Firebase или self hosted Keycloak
мне кажется, я тупой
Вам только кажется, на самом деле это не так!