Если бы не ты и этот замечательный плейлист, я не знаю что бы я делал с дипломом, посмотрел все ролики по нескольку раз, и пишу параллельно апку, ты как научрук))) спасибо!)
@SurenKhorenyan9 ай бұрын
Крутяк! Я рад, что вам помогло
@cherdak_turista Жыл бұрын
Сурен, добрый вечер! Спасибо за качественные видео! Пожалуйста, не останавливайся) У тебя талант
@SurenKhorenyan Жыл бұрын
Добрый вечер. Пожалуйста! Очень приятно. Останавливаться не планирую ☺
@saitaro Жыл бұрын
Я осилил этот плейлист, и теперь знаю всё о программировании! Сурен меня всему научил. Спасибо, Сурен!
@SurenKhorenyan Жыл бұрын
Крутяк, пожалуйста! Конечно, до знания всего ещё долго добираться, да и нужно не только посмотреть, а ещё и написать это своими руками, но круто, что вы осилили все видео!
@Alex-zl7wg3 ай бұрын
Превосходная подача материала! Всё подробно и в то же время ничего лишнего. Преподавать ваше призвание! Спасибо за курс.
@SurenKhorenyan3 ай бұрын
Спасибо! Рад 🥰
@AlexanderITandEng4 ай бұрын
Сурен, Вы просто легенда. Спасибо вам за такие информативные ролики, где вы показываете не только как сделать, но и как принято/правильно делать. Тем самым создается отличная база знаний для разработчика и он не будет белой вороной в команде. Спасибо Вам!! Продолжайте в том же духе💪💪💪
@SurenKhorenyan4 ай бұрын
@@AlexanderITandEng кайф, пожалуйста! Очень приятно, я рад 🥰 Спасибо за теплые слова 😊
@sayomortal5 ай бұрын
Блин, у тебя просто офигенная подача материала, все по делу, с нужными пояснениями, без инфоцыганства. Рад, что вышел на этот канал
@SurenKhorenyan5 ай бұрын
Кайф! Спасибо, очень приятно 🥰
@helloiveqw52904 ай бұрын
Очень классное и понятное видео. Мне как человеку который долгую часть времени изучал плюсы приятно что везде указываются типы данных так как в других видео просто переменные и что где и как хранится не понятно)
@SurenKhorenyan4 ай бұрын
@@helloiveqw5290 кайф! Я рад, что вам понравилось 🥰 Спасибо
@antonmislawsky9 ай бұрын
Классные уроки очень высокого уровня без воды спасибо
@SurenKhorenyan9 ай бұрын
Кайф, я рад, что вам понравилось! Пожалуйста! 🥰
@yurypaulouski9 ай бұрын
Сурен, спасибо большое за проделанную работу! Очень полезно и крайне детально. Планируете ли продолжение этой серии? Думаю, там есть еще очень моногое, о чём можно рассказать.
@SurenKhorenyan9 ай бұрын
Пожалуйста! Да, продолжение обязательно будет. Возможно, успею весной ещё пару роликов по теме выпустить
@Katar1x11 ай бұрын
Нужна серия роликов по созданию проекта КАК на проде. То есть взять тематику для примера и с нуля пройти этапы проектирования бд, построения архитектуры, и т д
@SurenKhorenyan11 ай бұрын
Есть такое в планах, всё никак не решу, что именно делать. Хочется какой-то полезный, но несложный проект
@Katar1x11 ай бұрын
Сайт-хранилище с мемами можно)@@SurenKhorenyan
@SurenKhorenyan8 ай бұрын
так для этого телеграм-каналы есть 🙂
@Viktor-b3k Жыл бұрын
Это лучший материал по auth который мне попался. Наверно, благодаря лучшему автору!
@SurenKhorenyan Жыл бұрын
Круто, спасибо большое! Очень приятно 🥰
@Alex89muller5 ай бұрын
Сурен, Спасибо за видео! Очень круто. Правда на замедленной перемотки приходится смотреть - очень быстро. В остальном объяснения прям супер.
@SurenKhorenyan5 ай бұрын
Пожалуйста! Хах. И так стараюсь медленнее говорить.. 😅 ещё тренируюсь
@Alex89muller5 ай бұрын
@@SurenKhorenyan 😂🤷♂️
@mukhamedzhumabekoff764211 ай бұрын
отличная работа, название == содержание, никакого кликбейта, спасибо!
@SurenKhorenyan11 ай бұрын
спасибо! рад трудиться ☺ рад, что понравилось
@lifestyletv139 Жыл бұрын
Топ. То, что надо, лучший контент в мире по фастапи!!! Продолжай
@SurenKhorenyan Жыл бұрын
Кайф, спасибо! Очень приятно 🥰 Я рад трудиться
@АнтонКородян4 ай бұрын
Спасибо вам большое за такой детальный материал, перехожу с django и скажу разница существенная.
@SurenKhorenyan4 ай бұрын
Пожалуйста!
@stvJnK Жыл бұрын
Привет! Супер материал, для меня открытие было про использование RSA. Тема сложная, но у Вас подача материала очень хорошая :) . Жду с нетерпением продолжение. Если будет возможность хотелось бы услышать про Refresh токены как этот механизм работает и какие у него особенности (сколько не разбирался не могу понять принцип обновления и хранения в каких-то http-only в куках, local storage). Мучают вопросы момента обновления токенов: 1. Например время жизни Access 15 минут, соответственно пользователь вернулся через 2 часа и так как Access протух, то смотрим Refresh токен. И обновляем Access и Refresh или только Access. 2. В процессе пользования Access токена, система видит, что подходит время и обновляет Access или работаем как в 1 пункте и смотрим на Refresh и меняем только Access или Refresh тоже...
@SurenKhorenyan Жыл бұрын
Привет! Класс, я рад, что понравилось 😊 Про рефреш тоже будет позже, в рамках большого видео по авторизации. По рефрешу вы написали два подхода, которые могут использоваться отдельно друг от друга, а также вместе. Всё зависит от реализации
@МаксМаисеев-ч3з Жыл бұрын
Привет, спасибо за информацию, до того как нашёл твои видео смотрел другого ютубера по фаст апи но увидел тебя и стал смотреть твои видео
@SurenKhorenyan Жыл бұрын
Привет, пожалуйста! Класс, приятно ☺
@twenty1th Жыл бұрын
Отличное видео, как всегда. Спасибо за работу!
@SurenKhorenyan Жыл бұрын
Класс! Рад, что вам понравилось 🥰 Пожалуйста
@Борщкот Жыл бұрын
Топчик, отдельный респект за таймкоды
@SurenKhorenyan Жыл бұрын
Супер! Не зря я их выписывал 😅
@photo_graf_khv8 күн бұрын
Как всегда красавчик 👍 спасибо, пойду делать тестовое по этому видосу🙂
@SurenKhorenyan7 күн бұрын
Кайф, удачи! Кстати, если несложно, поделитесь плиз тестовым. Можно в личке (все ссылки в описании канала)
@photo_graf_khv7 күн бұрын
@@SurenKhorenyan Без проблем👌для тех кто читает, тест заключается в написании 2х енд поинтов. 1й аутентификация, регистрация (jwt), возможность смены пароля. 2й перевод средств (транзакциии). Считаю, что это многовато для тестового, но хотя в бэкенде опыта у меня не много. Подскажите, плиз народ или автор, это ту мач?
@NikitaProfir Жыл бұрын
Огромное спасибо за контент!
@SurenKhorenyan Жыл бұрын
Пожалуйста!
@dazdik11 ай бұрын
лучший видос, помог разобраться с ошибкой в проекте 🔥
@SurenKhorenyan11 ай бұрын
Крутяк! Я рад, что у вас получилось, и что я смог помочь 🥰
@user-fm155211 ай бұрын
классная подача материала ! спсб !
@SurenKhorenyan11 ай бұрын
Супер! Пожалуйста!
@arturzhukovets79519 ай бұрын
Спасибо за урок! Очень круто! А можешь тезисно описать хронологию использования вот такого вот способа аутентификации со стороны фронта? Я хочу использовать React. Если конкретнее то куда правильнее всего положить этот токен для использования в других запросах? И будет ли это вообще корректно использовать такой способ auth для обычного сайта или jwt auth используется только для каких-то сервисных АПИ?
@SurenKhorenyan9 ай бұрын
Фронт сохраняет токен в local storage, каждый раз в запросе указывает По аналогии ещё нужен refresh token, у которого срок жизни больше. И при помощи этого токена надо обновлять обычный. Когда-нибудь это тоже покажу 🙂
@arturzhukovets79519 ай бұрын
Будет здорово. А так спасибо за ролики по FASTAPI, это как глоток свежего воздуха
@SurenKhorenyan9 ай бұрын
@@arturzhukovets7951 пожалуйста!
@Паша-н9ь3 ай бұрын
спасибо! Все четко и понятно!
@SurenKhorenyan3 ай бұрын
@@Паша-н9ь пожалуйста!
@МихаилЕфимов-м3у Жыл бұрын
Привет, всё отличено, единственный момент который стоит делать по другому это 37:40, где используется utcnow(), который признан deprecated в 3.12. Можно почитать обсуждение по этому поводу на форуме discuss python в теме "Deprecating `utcnow` and `utcfromtimestamp`"
@SurenKhorenyan Жыл бұрын
привет, спасибо! да, я в курсе про deprecation warning в 3.12. пока что его нигде не используют, так что не страшно. да и в ворнинге написано, как заменить
@HumoyunAhmedov-g9r10 ай бұрын
Спасибо вам!
@SurenKhorenyan10 ай бұрын
Пожалуйста!
@ВикторГлухов-р3ь Жыл бұрын
Спасибо за материал! 10:30 сижу и не понимаю, откуда эти команды у меня в README должны появиться))))
@SurenKhorenyan Жыл бұрын
Пожалуйста! Это я их так незаметно успел скопировать. И вставил после создания файла 😅
@ВикторГлухов-р3ь11 ай бұрын
Благодарю за контент! @@SurenKhorenyan
@SurenKhorenyan8 ай бұрын
Пожалуйста! Рад, что вам нравится
@Mr_Endorphin_vod11 ай бұрын
Здравствуйте, Сурен! Большое Вам спасибо за ваши видео - это самый подробный курс по fastapi, который встречал! Успехов в развитии вашего канала:) И подскажите пожалуйста, не планируете ли вы разобрать RabbitMQ? Он очень часто встречается на проектах, но пока не встречал адекватных видео в связке с python
@SurenKhorenyan11 ай бұрын
Добрый день! Пожалуйста! Я рад, что вам нравится, мне очень приятно. Спасибо большое! Дальше больше 💪 По RabbitMQ планирую сделать видео, тема очередей задач очень важна. Просто пока по теме видео мы даже и близко не добрались. Когда-нибудь обязательно будет, может быть даже в этом году 🙂
@voronovmaksim88Ай бұрын
Спасибо за видео !
@SurenKhorenyanАй бұрын
Пожалуйста!
@Давид-у3д7ж Жыл бұрын
Вот спасибо тебе, Сурен! Не прямо, но опосредовано помог найти решение моей траблы :)
@SurenKhorenyan Жыл бұрын
Круто, пожалуйста! Рад помочь 🥰
@georgedudaev8738 Жыл бұрын
Сурен, добрый день, спасибо, что подробно объясняешь! другие блогеры поверхностно пробегаются или просят покупать платные курсы, но ни у одного даже на платных не увидел как грамотно сделать аутентификацию и авторизацию с access и refresh токенами, может ты хотя бы возьмешь на вооружение, а то так нигде и не нашел как сделать именно грамотную авторизацию, а не просто access токен, он ведь живет всего лишь 15-30 минут, было б круто если бы прям рассказал как это работает и показал, для чего нужен рефреш токен, и как с его помощью рефрешатся эти токены
@SurenKhorenyan Жыл бұрын
Привет, пожалуйста! Да, обязательно будет и как скомбинировать это всё и жить с access + refresh токенами
@georgedudaev8738 Жыл бұрын
@@SurenKhorenyan очень жду, а то индусов смотреть устал, никто еще нормально не сделал это как надо со слоистой архитектурой
@SurenKhorenyan Жыл бұрын
@@georgedudaev8738 просто подходов довольно много, надо про них рассказать, сравнить. будет зимой
@georgedudaev8738 Жыл бұрын
@@SurenKhorenyan могу помочь как человек пытающийся все это реализовать, вопросы возникающие у людей, что непонятно, это все рассказать, думаю если сделаешь полноценный модуль авторизации, с эндпоинтами смены пароля и сброса пароля, и это все на бусти, много подписок обеспечено!
@SurenKhorenyan Жыл бұрын
@@georgedudaev8738 конечно, пишите ваши вопросы! я пока ещё не подготовил сценарий по этой теме, ресерч ещё впереди, так что любая информация пригодится
@pierredechardin6340 Жыл бұрын
Огромное спасибо за материал. Будет ли урок по полноценной аутентификации с refresh сессиями?
@SurenKhorenyan Жыл бұрын
Пожалуйста! Да, про обновление токена тоже расскажу в одном из следующих видео
@voronin911 Жыл бұрын
Очень ждём и спасибо за ваши труды!!!!❤
@nerassstraivaisya Жыл бұрын
Привет, спасибо большое за плейлист по фастапи, очень качественно преподаешь! Было бы круто, если бы ты сделал ролик по созданию полноценного многомодульного приложения, где разные апишки общаются между собой 😊
@SurenKhorenyan Жыл бұрын
Привет, пожалуйста! Всё впереди, может быть и до этого доберусь 🙂
@nv1889 Жыл бұрын
Привет, подскажи, пожалуйста, на 10:30 как ты создал файл ридми?
@SurenKhorenyan Жыл бұрын
Привет! В данном случае я вставил файл, который подготовил и скопировал заранее. А так, чтобы создать новый файл, достаточно кликнуть правой клавишей, выбрать new file и написать в названии README (точка) md
@nv1889 Жыл бұрын
Понял, спасибо! Еще вопрос: при выполнении команды в терминале "openssl genrsa -out jwt-private.pem 2048" пайчарм мне пишет: '"openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.' Как быть? @@SurenKhorenyan
@SurenKhorenyan Жыл бұрын
@@nv1889 у вас не установлен OpenSSL, вот нашёл инструкцию как в PowerShell на Windows поставить linuxhint.com/openssl-windows-10/
@ondest5059Ай бұрын
А вот в микросервисной архитектуре это как применяется? То есть один сервис выпускает токены, а остальные просто проверяют по публичному ключу или как это работает, можете подробнее рассказать?
@SurenKhorenyanАй бұрын
@@ondest5059 сервер аутентификации выпускает токен, пользователь с этим токеном ходит в приложения. Приложения получают токен и проверяют на сервере аутентификации валидность токена
@tonyborbozo5 ай бұрын
при попытки генерации ключей, выдало 'openssl' is not recognized as an internal or external command, operable program or batch file.
@SurenKhorenyan5 ай бұрын
поставьте openssl. Или сделайте через python secrets: python -c 'import secrets; print(secrets.token_hex())'
@__name__3979 ай бұрын
Сурен, спасибо большое за видео! Было очень познавательно. У меня возник такой вопрос после просмотра видео Есть такое понятие как готовая аутентификация Получается, это понятие не относится к нашей, так как мы писали его сами? Или же наша аутентификация считается "готовой"? Спасибо за ответ!
@SurenKhorenyan9 ай бұрын
Привет! Показанная аутентификация не может считаться готовой, там ещё требуются доработки, как минимум создание refresh токена. На самом деле существуют готовые решения, разные решения. Про них мы ещё поговорим в дальнейшем
@pavelhomov Жыл бұрын
Есть еще библиотека FastAPIUsers, разве она не лучше для данного решения? Там еще и OAuth2 с коробки
@pavelhomov Жыл бұрын
и гораздо проще подключается
@SurenKhorenyan Жыл бұрын
Есть, расскажу Для того, чтобы понимать, как вообще работает это всё, начинаю издалека
@SurenKhorenyan Жыл бұрын
@@pavelhomov обязательно посмотрим в новых видео
@ГлебФёдоров-ч1л5 ай бұрын
а как в ходе работы быть с токеном? мне каждый раз вручную прописывать добавление его в заголовки или есть какая-то автоматизация?
@SurenKhorenyan5 ай бұрын
Если у вас жээс приложение на фронте, то там обычно да, сохраняют в localstorage и добавляют в заголовки каждый раз. Если у вас всё на server side rendering, то вам подходит установка этого токена в куки, тогда браузер будет автоматически эти куки слать
@ГлебФёдоров-ч1л5 ай бұрын
@@SurenKhorenyan а, получается работа фронтендера, а не моя, понял, огромное спасибо!!! классная серия видео!
@SurenKhorenyan5 ай бұрын
@@ГлебФёдоров-ч1л ага. Пожалуйста!
@ИванШалутов11 ай бұрын
Привет. Было бы полезно также узнать как сделать проверку почты при регистрации. То есть, мы регистрируемся, и нам на почту отправляется письмо со ссылкой по которой нужно перейти для завершения регистрации. Также кнопка забыли пароль, с функционалом по отправке письма для сброса пароля.
@SurenKhorenyan11 ай бұрын
Привет, спасибо! Классная идея, надо будет такое тоже показать
@oleksandr7201 Жыл бұрын
Здравствуйте, Сурен! Спасибо за такой качественный контент! Подскажите еще, пожалуйста, а как правильно сделать logout? Как я понимаю, у клиента в браузере каким то образом необходимо удалить токен?
@SurenKhorenyan Жыл бұрын
Пожалуйста! Чтобы именно пользователь выполнил выход, достаточно "забыть" токен на фронте (на клиенте) А если нужно сделать так, чтобы токен больше не был валидным - это надо использовать другой подход, когда мы следим за каждым выпущенным токеном (с помощью базы данных), но это уже совсем другая история
@voronin911 Жыл бұрын
Я передаю токен, через cookies, а для logout на сервере ендпоинт logout где эта кука удаляется
@SurenKhorenyan Жыл бұрын
@@voronin911 отличный способ!
@dimkas428410 ай бұрын
Прекрасное видео, я бы хотел спросить, получается когда пользователь введет логин пароль по эндпойнту login, то автоматически создается токен и после этого, когда он сделает get запрос на какой нибудь эндпойнт, где в аргумент функции через depends будет вызван get_current_user то нам уже не надо будет руками вводить токен, верно? достаточно один раз залогиниться
@SurenKhorenyan10 ай бұрын
Спасибо. Ну, не совсем так. Нам всё равно надо будет логиниться снова. Наш токен живёт ограниченное время. Токен надо обязательно передавать в заголовке
@nerassstraivaisya11 ай бұрын
Сурен привет! А есть в планах записать ролик на тему тестирования этого приложения через pytest? Было бы очень здорово:)
@SurenKhorenyan11 ай бұрын
Привет! В планах есть, сроков пока нет
@user-fo8yv6cf9h4 ай бұрын
как сделать логаут при такой реализации. у меня как у тебя, но подключена бд. Пробувала через занос токена в блеклист, но в свагере он все равно сохраняеться
@SurenKhorenyan4 ай бұрын
А вы с базой данных сверяете? Сам по себе токен сгорит только по истечении времени. А чтобы валидировать через базу нужно дописывать логику
@user-fo8yv6cf9h4 ай бұрын
@@SurenKhorenyan валидные токены хранятся у пользователя в браузере, запись не идет в бд. Но есть модель TokenBlackList, где хранится токен при логауте. Потом обычно проверяется нет ли такого токена в блеклости. Но в свагере там, где замочек логаут не идет автоматом, можно ли это как-то переопределить? + Получается надо будет во всех роутах дополнительно где требуется логин делать депендс от функции проверки токена? Еще вопрос можно ли рассмотреть возможность реализации логаута, где будет с куки в браузере удаляться токен без всего остального? или такое не канает
@SurenKhorenyan4 ай бұрын
@@user-fo8yv6cf9h понял - сваггер при "выходе" просто забывает токен. Чтобы реально сделать ваш логаут, необходимо дёрнуть апи - проверять нужно везде, да Лучше в тг чате обсудить, тут неудобно и долго. Рад буду подсказать
@iRespectOnlyYen Жыл бұрын
🔥🔥🔥
@SurenKhorenyan Жыл бұрын
🥰
@uathon437911 ай бұрын
У меня вопросик, не могу поняк как сохранять в куках авторизацию по oauth2passwordbearer. После релоада авторизация пропадает и надо заново авторизироваться.
@SurenKhorenyan11 ай бұрын
привет! приходите в тг чат, там подскажут. пока не очень понимаю проблему, надо посмотреть, что приходит в ответ от сервера, как сохраняется кука.
@Artem-sz4rc6 ай бұрын
легенда
@SurenKhorenyan6 ай бұрын
Спасибо! 🥰
@vadimv1501 Жыл бұрын
как bcrypt понимает что пароль соответствует хэшу(с солью), ведь мы не передаем в него соль повторно? где почитать об этом? никак не могу разобраться
@vadimv1501 Жыл бұрын
как я понял, соль передается вместе с хэшем пароля в одной строке. если украсть хэш, то украдется и соль. разве это не проблема? (или даже если знаешь соль, ускорить брудфорс пароля это не поможет?)
@SurenKhorenyan Жыл бұрын
@@vadimv1501 верно, соль будет в строке вместе с хэшем, разделяется обычно долларом. Да, зная соль будет легче брутфорсить. Но так как делается не одна итерация хэшироаания, а сотни и тысячи, всё равно перебрать довольно сложно
@vadimv1501 Жыл бұрын
@@SurenKhorenyan В реальном проекте такой способ хранения паролей подойдет, или есть более популярные практики? (возможно какой-то конкретный алгоритм хэширования)
@SurenKhorenyan Жыл бұрын
@@vadimv1501 в реальном проекте подойдёт, джанго так и делает, только может применять другой алгоритм хэширования
@user-fo8yv6cf9h6 ай бұрын
дякую
@SurenKhorenyan6 ай бұрын
Пожалуйста 😊
@_balancy_16 күн бұрын
всегда думал, что python-jose читается как Хосе с ударением на е, на испанский манер
@SurenKhorenyan15 күн бұрын
Хмм, вполне вероятно. Звучит очень правдоподобно. Я не задумывался просто и читал как написано
@CounterSuny7 ай бұрын
жаль, что в OAuth2PasswordBearer нельзя использовать вместо username какой-нибудь email или login. Я читал где-то решение этой проблемы, но пока без костылей и велосипедов её нормально не решить. Больше всего поржал от документации fastapi где написано что-то вроде: "Забейте, для конечного пользователя вы можете использовать свои обозначения, но на стороне сервера это должно быть username"))))
@SurenKhorenyan7 ай бұрын
Ха, прикол. Не сталкивался. При желании можно сделать свою обертку
@ГубкаБоб-р8ъ Жыл бұрын
Да уж, тема достаточно сложная и обширная. Это надо пару раз как минимум пересмартивать. PS первый раз увидел наглядное применение оператора "моржа"
@SurenKhorenyan Жыл бұрын
Действительно, тема большая. Помимо пересмотра видео хорошо бы ещё применить полученные знания на практике!
@ГубкаБоб-р8ъ Жыл бұрын
@@SurenKhorenyan согласен, но я пока еще недостаточно освоил джанго, пока борюсь с ним. Может я зря опасаюсь что если параллельно начну писать на FastAPI то запутаюсь? Не знаю
@SurenKhorenyan Жыл бұрын
@@ГубкаБоб-р8ъ вряд ли запутаетесь, это довольно разные фреймворки
@DaniilReshetnev9 ай бұрын
Последнее обновление библиотеки JWT Auth 30 минут назад
@SurenKhorenyan9 ай бұрын
Круто! Надо будет заглянуть, спасибо за информацию
@SurenKhorenyan8 ай бұрын
Добрый день. А вы про какую библиотеку? FastAPI JWT Auth обновлялась более четырех лет назад, python-jose обновлялась три года назад. Да даже библиотека PyJWT, которую я в видео рекомендую, обновлялась год назад. Скиньте ссылку тут или приходите обсуждать в чат в телеграм
@aqarys.devlog4 ай бұрын
@@SurenKhorenyan А какую используют в итоге на проде все проекты?
@SurenKhorenyan4 ай бұрын
@@aqarys.devlog реальные проекты используют third party для аутентификации и авторизации. Облачный Firebase или self hosted Keycloak