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

  Рет қаралды 14,229

Сурен Хоренян

Сурен Хоренян

Күн бұрын

Рассмотрим тему JSON Web Token (JWT). Расскажу, что такое JWT и какие готовые библиотеки можно использовать для FastAPI.
Напишем свои обертки для выпуска и проверки токена при помощи PyJWT, а также обертки для хэширования и проверки пароля пользователя через bcrypt.
Реализуем вход пользователя через форму.
Установим срока жизни токена, добавим проверку валидности токена.
Научимся извлекать токен из запроса с через HTTPBearer (который возвращает HTTPAuthorizationCredentials) и при помощи OAuth2PasswordBearer.
Большое спасибо всем, кто поддерживает лайком, комментарием, а также материально!
Поддержать выход роликов (зарплата монтажеру)
- через Tinkoff tinkoff.ru/cf/6kbKWtKhapM
- бусти boosty.to/mahenzon
- sponsr sponsr.ru/suren/
- через CloudTips pay.cloudtips.ru/p/9a8fa641
Ссылки на соцсети:
- Канал и чат в ТГ t.me/Khorenyan
- Паблик в ВК surenkhorenyan
- KZbin: / @surenkhorenyan
- RuTube rutube.ru/channel/29899055/
Видео №6 из серии роликов про FastAPI
Код тут: github.com/mahenzon/micro-sho...
Метки:
00:00 Начало. Про Auth
01:00 Что такое JWT
04:00 Готовые библиотеки
07:34 Ставим PyJWT
08:16 Генерация пары ключей
13:25 Настройки
15:15 Код. Свои обертки
20:10 Как пускать пользователя (через форму)
22:29 Как шифровать пароль
27:01 Создание пользователей и хэширование паролей
29:17 Выпуск токена для пользователя
35:01 Срок жизни токена
39:12 Вход пользователя (форма)
43:08 Наш токен выпущен. Что внутри? Проверка подписи
45:20 Как проверять токен в коде?
48:20 Как вытащить токен из запроса: HTTPBearer
50:38 А что приходит? Знакомство с HTTPAuthorizationCredentials
51:57 Проверка токена
54:55 Повторный проход по шагам проверки
55:48 Обработка невалидного токена
58:27 Вход по токену
01:02:01 Подытог
01:02:27 Упрощение входа в документацию через OAuth2PasswordBearer
01:07:05 Что получилось
01:08:35 Огромное спасибо

Пікірлер: 120
@sayomortal
@sayomortal 14 күн бұрын
Блин, у тебя просто офигенная подача материала, все по делу, с нужными пояснениями, без инфоцыганства. Рад, что вышел на этот канал
@SurenKhorenyan
@SurenKhorenyan 14 күн бұрын
Кайф! Спасибо, очень приятно 🥰
@twenty1th
@twenty1th 7 ай бұрын
Отличное видео, как всегда. Спасибо за работу!
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Класс! Рад, что вам понравилось 🥰 Пожалуйста
@cherdak_turista
@cherdak_turista 7 ай бұрын
Сурен, добрый вечер! Спасибо за качественные видео! Пожалуйста, не останавливайся) У тебя талант
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Добрый вечер. Пожалуйста! Очень приятно. Останавливаться не планирую ☺
@antonmislawsky
@antonmislawsky 4 ай бұрын
Классные уроки очень высокого уровня без воды спасибо
@SurenKhorenyan
@SurenKhorenyan 4 ай бұрын
Кайф, я рад, что вам понравилось! Пожалуйста! 🥰
@lifestyletv139
@lifestyletv139 7 ай бұрын
Топ. То, что надо, лучший контент в мире по фастапи!!! Продолжай
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Кайф, спасибо! Очень приятно 🥰 Я рад трудиться
@user-dn4kw9gy5b
@user-dn4kw9gy5b 7 ай бұрын
Это лучший материал по auth который мне попался. Наверно, благодаря лучшему автору!
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Круто, спасибо большое! Очень приятно 🥰
@dazdik
@dazdik 6 ай бұрын
лучший видос, помог разобраться с ошибкой в проекте 🔥
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Крутяк! Я рад, что у вас получилось, и что я смог помочь 🥰
@user-eu8gq7md3z
@user-eu8gq7md3z 7 ай бұрын
Привет, спасибо за информацию, до того как нашёл твои видео смотрел другого ютубера по фаст апи но увидел тебя и стал смотреть твои видео
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Привет, пожалуйста! Класс, приятно ☺
@sinsinegobaffa7321
@sinsinegobaffa7321 4 ай бұрын
Если бы не ты и этот замечательный плейлист, я не знаю что бы я делал с дипломом, посмотрел все ролики по нескольку раз, и пишу параллельно апку, ты как научрук))) спасибо!)
@SurenKhorenyan
@SurenKhorenyan 4 ай бұрын
Крутяк! Я рад, что вам помогло
@saitaro
@saitaro 7 ай бұрын
Я осилил этот плейлист, и теперь знаю всё о программировании! Сурен меня всему научил. Спасибо, Сурен!
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Крутяк, пожалуйста! Конечно, до знания всего ещё долго добираться, да и нужно не только посмотреть, а ещё и написать это своими руками, но круто, что вы осилили все видео!
@user-ll5sp2zg1n
@user-ll5sp2zg1n 7 ай бұрын
Огромное спасибо за контент!
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Пожалуйста!
@user-kk1yg9fr8r
@user-kk1yg9fr8r 7 ай бұрын
Топчик, отдельный респект за таймкоды
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Супер! Не зря я их выписывал 😅
@user-im7if6ps3z
@user-im7if6ps3z 7 ай бұрын
Вот спасибо тебе, Сурен! Не прямо, но опосредовано помог найти решение моей траблы :)
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Круто, пожалуйста! Рад помочь 🥰
@mukhamedzhumabekoff7642
@mukhamedzhumabekoff7642 6 ай бұрын
отличная работа, название == содержание, никакого кликбейта, спасибо!
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
спасибо! рад трудиться ☺ рад, что понравилось
@user-fm1552
@user-fm1552 6 ай бұрын
классная подача материала ! спсб !
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Супер! Пожалуйста!
@Alex89muller
@Alex89muller 22 күн бұрын
Сурен, Спасибо за видео! Очень круто. Правда на замедленной перемотки приходится смотреть - очень быстро. В остальном объяснения прям супер.
@SurenKhorenyan
@SurenKhorenyan 22 күн бұрын
Пожалуйста! Хах. И так стараюсь медленнее говорить.. 😅 ещё тренируюсь
@Alex89muller
@Alex89muller 22 күн бұрын
@@SurenKhorenyan 😂🤷‍♂️
@yurypaulouski1593
@yurypaulouski1593 4 ай бұрын
Сурен, спасибо большое за проделанную работу! Очень полезно и крайне детально. Планируете ли продолжение этой серии? Думаю, там есть еще очень моногое, о чём можно рассказать.
@SurenKhorenyan
@SurenKhorenyan 4 ай бұрын
Пожалуйста! Да, продолжение обязательно будет. Возможно, успею весной ещё пару роликов по теме выпустить
@nerassstraivaisya
@nerassstraivaisya 7 ай бұрын
Привет, спасибо большое за плейлист по фастапи, очень качественно преподаешь! Было бы круто, если бы ты сделал ролик по созданию полноценного многомодульного приложения, где разные апишки общаются между собой 😊
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Привет, пожалуйста! Всё впереди, может быть и до этого доберусь 🙂
@stvJnK
@stvJnK 7 ай бұрын
Привет! Супер материал, для меня открытие было про использование RSA. Тема сложная, но у Вас подача материала очень хорошая :) . Жду с нетерпением продолжение. Если будет возможность хотелось бы услышать про Refresh токены как этот механизм работает и какие у него особенности (сколько не разбирался не могу понять принцип обновления и хранения в каких-то http-only в куках, local storage). Мучают вопросы момента обновления токенов: 1. Например время жизни Access 15 минут, соответственно пользователь вернулся через 2 часа и так как Access протух, то смотрим Refresh токен. И обновляем Access и Refresh или только Access. 2. В процессе пользования Access токена, система видит, что подходит время и обновляет Access или работаем как в 1 пункте и смотрим на Refresh и меняем только Access или Refresh тоже...
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Привет! Класс, я рад, что понравилось 😊 Про рефреш тоже будет позже, в рамках большого видео по авторизации. По рефрешу вы написали два подхода, которые могут использоваться отдельно друг от друга, а также вместе. Всё зависит от реализации
@user-qh2em5cb2i
@user-qh2em5cb2i 5 ай бұрын
Спасибо вам!
@SurenKhorenyan
@SurenKhorenyan 5 ай бұрын
Пожалуйста!
@Katar1x
@Katar1x 6 ай бұрын
Нужна серия роликов по созданию проекта КАК на проде. То есть взять тематику для примера и с нуля пройти этапы проектирования бд, построения архитектуры, и т д
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Есть такое в планах, всё никак не решу, что именно делать. Хочется какой-то полезный, но несложный проект
@Katar1x
@Katar1x 6 ай бұрын
Сайт-хранилище с мемами можно)@@SurenKhorenyan
@SurenKhorenyan
@SurenKhorenyan 3 ай бұрын
так для этого телеграм-каналы есть 🙂
@Artem-sz4rc
@Artem-sz4rc Ай бұрын
легенда
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
Спасибо! 🥰
@iRespectOnlyYen
@iRespectOnlyYen 7 ай бұрын
🔥🔥🔥
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
🥰
@user-cj9vi2gq3l
@user-cj9vi2gq3l 7 ай бұрын
Привет, всё отличено, единственный момент который стоит делать по другому это 37:40, где используется utcnow(), который признан deprecated в 3.12. Можно почитать обсуждение по этому поводу на форуме discuss python в теме "Deprecating `utcnow` and `utcfromtimestamp`"
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
привет, спасибо! да, я в курсе про deprecation warning в 3.12. пока что его нигде не используют, так что не страшно. да и в ворнинге написано, как заменить
@Mr_Endorphin_vod
@Mr_Endorphin_vod 6 ай бұрын
Здравствуйте, Сурен! Большое Вам спасибо за ваши видео - это самый подробный курс по fastapi, который встречал! Успехов в развитии вашего канала:) И подскажите пожалуйста, не планируете ли вы разобрать RabbitMQ? Он очень часто встречается на проектах, но пока не встречал адекватных видео в связке с python
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Добрый день! Пожалуйста! Я рад, что вам нравится, мне очень приятно. Спасибо большое! Дальше больше 💪 По RabbitMQ планирую сделать видео, тема очередей задач очень важна. Просто пока по теме видео мы даже и близко не добрались. Когда-нибудь обязательно будет, может быть даже в этом году 🙂
@user-fo8yv6cf9h
@user-fo8yv6cf9h Ай бұрын
дякую
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
Пожалуйста 😊
@user-xh3hz5iv6j
@user-xh3hz5iv6j 6 ай бұрын
Спасибо за материал! 10:30 сижу и не понимаю, откуда эти команды у меня в README должны появиться))))
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Пожалуйста! Это я их так незаметно успел скопировать. И вставил после создания файла 😅
@user-xh3hz5iv6j
@user-xh3hz5iv6j 6 ай бұрын
Благодарю за контент! @@SurenKhorenyan
@SurenKhorenyan
@SurenKhorenyan 3 ай бұрын
Пожалуйста! Рад, что вам нравится
@pierredechardin6340
@pierredechardin6340 7 ай бұрын
Огромное спасибо за материал. Будет ли урок по полноценной аутентификации с refresh сессиями?
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Пожалуйста! Да, про обновление токена тоже расскажу в одном из следующих видео
@voronin911
@voronin911 7 ай бұрын
Очень ждём и спасибо за ваши труды!!!!❤
@__name__397
@__name__397 4 ай бұрын
Сурен, спасибо большое за видео! Было очень познавательно. У меня возник такой вопрос после просмотра видео Есть такое понятие как готовая аутентификация Получается, это понятие не относится к нашей, так как мы писали его сами? Или же наша аутентификация считается "готовой"? Спасибо за ответ!
@SurenKhorenyan
@SurenKhorenyan 4 ай бұрын
Привет! Показанная аутентификация не может считаться готовой, там ещё требуются доработки, как минимум создание refresh токена. На самом деле существуют готовые решения, разные решения. Про них мы ещё поговорим в дальнейшем
@georgedudaev8738
@georgedudaev8738 7 ай бұрын
Сурен, добрый день, спасибо, что подробно объясняешь! другие блогеры поверхностно пробегаются или просят покупать платные курсы, но ни у одного даже на платных не увидел как грамотно сделать аутентификацию и авторизацию с access и refresh токенами, может ты хотя бы возьмешь на вооружение, а то так нигде и не нашел как сделать именно грамотную авторизацию, а не просто access токен, он ведь живет всего лишь 15-30 минут, было б круто если бы прям рассказал как это работает и показал, для чего нужен рефреш токен, и как с его помощью рефрешатся эти токены
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Привет, пожалуйста! Да, обязательно будет и как скомбинировать это всё и жить с access + refresh токенами
@georgedudaev8738
@georgedudaev8738 7 ай бұрын
@@SurenKhorenyan очень жду, а то индусов смотреть устал, никто еще нормально не сделал это как надо со слоистой архитектурой
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@georgedudaev8738 просто подходов довольно много, надо про них рассказать, сравнить. будет зимой
@georgedudaev8738
@georgedudaev8738 7 ай бұрын
​@@SurenKhorenyan могу помочь как человек пытающийся все это реализовать, вопросы возникающие у людей, что непонятно, это все рассказать, думаю если сделаешь полноценный модуль авторизации, с эндпоинтами смены пароля и сброса пароля, и это все на бусти, много подписок обеспечено!
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@georgedudaev8738 конечно, пишите ваши вопросы! я пока ещё не подготовил сценарий по этой теме, ресерч ещё впереди, так что любая информация пригодится
@dimkas4284
@dimkas4284 5 ай бұрын
Прекрасное видео, я бы хотел спросить, получается когда пользователь введет логин пароль по эндпойнту login, то автоматически создается токен и после этого, когда он сделает get запрос на какой нибудь эндпойнт, где в аргумент функции через depends будет вызван get_current_user то нам уже не надо будет руками вводить токен, верно? достаточно один раз залогиниться
@SurenKhorenyan
@SurenKhorenyan 5 ай бұрын
Спасибо. Ну, не совсем так. Нам всё равно надо будет логиниться снова. Наш токен живёт ограниченное время. Токен надо обязательно передавать в заголовке
@oleksandr7201
@oleksandr7201 7 ай бұрын
Здравствуйте, Сурен! Спасибо за такой качественный контент! Подскажите еще, пожалуйста, а как правильно сделать logout? Как я понимаю, у клиента в браузере каким то образом необходимо удалить токен?
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Пожалуйста! Чтобы именно пользователь выполнил выход, достаточно "забыть" токен на фронте (на клиенте) А если нужно сделать так, чтобы токен больше не был валидным - это надо использовать другой подход, когда мы следим за каждым выпущенным токеном (с помощью базы данных), но это уже совсем другая история
@voronin911
@voronin911 7 ай бұрын
Я передаю токен, через cookies, а для logout на сервере ендпоинт logout где эта кука удаляется
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@voronin911 отличный способ!
@nerassstraivaisya
@nerassstraivaisya 5 ай бұрын
Сурен привет! А есть в планах записать ролик на тему тестирования этого приложения через pytest? Было бы очень здорово:)
@SurenKhorenyan
@SurenKhorenyan 5 ай бұрын
Привет! В планах есть, сроков пока нет
@uathon4379
@uathon4379 6 ай бұрын
У меня вопросик, не могу поняк как сохранять в куках авторизацию по oauth2passwordbearer. После релоада авторизация пропадает и надо заново авторизироваться.
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
привет! приходите в тг чат, там подскажут. пока не очень понимаю проблему, надо посмотреть, что приходит в ответ от сервера, как сохраняется кука.
@arturzhukovets7951
@arturzhukovets7951 3 ай бұрын
Спасибо за урок! Очень круто! А можешь тезисно описать хронологию использования вот такого вот способа аутентификации со стороны фронта? Я хочу использовать React. Если конкретнее то куда правильнее всего положить этот токен для использования в других запросах? И будет ли это вообще корректно использовать такой способ auth для обычного сайта или jwt auth используется только для каких-то сервисных АПИ?
@SurenKhorenyan
@SurenKhorenyan 3 ай бұрын
Фронт сохраняет токен в local storage, каждый раз в запросе указывает По аналогии ещё нужен refresh token, у которого срок жизни больше. И при помощи этого токена надо обновлять обычный. Когда-нибудь это тоже покажу 🙂
@arturzhukovets7951
@arturzhukovets7951 3 ай бұрын
Будет здорово. А так спасибо за ролики по FASTAPI, это как глоток свежего воздуха
@SurenKhorenyan
@SurenKhorenyan 3 ай бұрын
@@arturzhukovets7951 пожалуйста!
@user-en3gy5ue4q
@user-en3gy5ue4q 6 ай бұрын
Привет. Было бы полезно также узнать как сделать проверку почты при регистрации. То есть, мы регистрируемся, и нам на почту отправляется письмо со ссылкой по которой нужно перейти для завершения регистрации. Также кнопка забыли пароль, с функционалом по отправке письма для сброса пароля.
@SurenKhorenyan
@SurenKhorenyan 6 ай бұрын
Привет, спасибо! Классная идея, надо будет такое тоже показать
@tonyborbozo
@tonyborbozo 15 күн бұрын
при попытки генерации ключей, выдало 'openssl' is not recognized as an internal or external command, operable program or batch file.
@SurenKhorenyan
@SurenKhorenyan 15 күн бұрын
поставьте openssl. Или сделайте через python secrets: python -c 'import secrets; print(secrets.token_hex())'
@pavelhomov
@pavelhomov 7 ай бұрын
Есть еще библиотека FastAPIUsers, разве она не лучше для данного решения? Там еще и OAuth2 с коробки
@pavelhomov
@pavelhomov 7 ай бұрын
и гораздо проще подключается
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Есть, расскажу Для того, чтобы понимать, как вообще работает это всё, начинаю издалека
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@pavelhomov обязательно посмотрим в новых видео
@nv1889
@nv1889 7 ай бұрын
Привет, подскажи, пожалуйста, на 10:30 как ты создал файл ридми?
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Привет! В данном случае я вставил файл, который подготовил и скопировал заранее. А так, чтобы создать новый файл, достаточно кликнуть правой клавишей, выбрать new file и написать в названии README (точка) md
@nv1889
@nv1889 7 ай бұрын
Понял, спасибо! Еще вопрос: при выполнении команды в терминале "openssl genrsa -out jwt-private.pem 2048" пайчарм мне пишет: '"openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.' Как быть? @@SurenKhorenyan
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@nv1889 у вас не установлен OpenSSL, вот нашёл инструкцию как в PowerShell на Windows поставить linuxhint.com/openssl-windows-10/
@user-mt7ci9kg4o
@user-mt7ci9kg4o 8 күн бұрын
а как в ходе работы быть с токеном? мне каждый раз вручную прописывать добавление его в заголовки или есть какая-то автоматизация?
@SurenKhorenyan
@SurenKhorenyan 8 күн бұрын
Если у вас жээс приложение на фронте, то там обычно да, сохраняют в localstorage и добавляют в заголовки каждый раз. Если у вас всё на server side rendering, то вам подходит установка этого токена в куки, тогда браузер будет автоматически эти куки слать
@user-mt7ci9kg4o
@user-mt7ci9kg4o 8 күн бұрын
@@SurenKhorenyan а, получается работа фронтендера, а не моя, понял, огромное спасибо!!! классная серия видео!
@SurenKhorenyan
@SurenKhorenyan 8 күн бұрын
@@user-mt7ci9kg4o ага. Пожалуйста!
@vadimv1501
@vadimv1501 7 ай бұрын
как bcrypt понимает что пароль соответствует хэшу(с солью), ведь мы не передаем в него соль повторно? где почитать об этом? никак не могу разобраться
@vadimv1501
@vadimv1501 7 ай бұрын
как я понял, соль передается вместе с хэшем пароля в одной строке. если украсть хэш, то украдется и соль. разве это не проблема? (или даже если знаешь соль, ускорить брудфорс пароля это не поможет?)
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@vadimv1501 верно, соль будет в строке вместе с хэшем, разделяется обычно долларом. Да, зная соль будет легче брутфорсить. Но так как делается не одна итерация хэшироаания, а сотни и тысячи, всё равно перебрать довольно сложно
@vadimv1501
@vadimv1501 7 ай бұрын
@@SurenKhorenyan В реальном проекте такой способ хранения паролей подойдет, или есть более популярные практики? (возможно какой-то конкретный алгоритм хэширования)
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@vadimv1501 в реальном проекте подойдёт, джанго так и делает, только может применять другой алгоритм хэширования
@CounterSuny
@CounterSuny 2 ай бұрын
жаль, что в OAuth2PasswordBearer нельзя использовать вместо username какой-нибудь email или login. Я читал где-то решение этой проблемы, но пока без костылей и велосипедов её нормально не решить. Больше всего поржал от документации fastapi где написано что-то вроде: "Забейте, для конечного пользователя вы можете использовать свои обозначения, но на стороне сервера это должно быть username"))))
@SurenKhorenyan
@SurenKhorenyan 2 ай бұрын
Ха, прикол. Не сталкивался. При желании можно сделать свою обертку
@user-it3yo1sn6i
@user-it3yo1sn6i 7 ай бұрын
Да уж, тема достаточно сложная и обширная. Это надо пару раз как минимум пересмартивать. PS первый раз увидел наглядное применение оператора "моржа"
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
Действительно, тема большая. Помимо пересмотра видео хорошо бы ещё применить полученные знания на практике!
@user-it3yo1sn6i
@user-it3yo1sn6i 7 ай бұрын
@@SurenKhorenyan согласен, но я пока еще недостаточно освоил джанго, пока борюсь с ним. Может я зря опасаюсь что если параллельно начну писать на FastAPI то запутаюсь? Не знаю
@SurenKhorenyan
@SurenKhorenyan 7 ай бұрын
@@user-it3yo1sn6i вряд ли запутаетесь, это довольно разные фреймворки
@user-fb8jh9wc6u
@user-fb8jh9wc6u 4 ай бұрын
Последнее обновление библиотеки JWT Auth 30 минут назад
@SurenKhorenyan
@SurenKhorenyan 4 ай бұрын
Круто! Надо будет заглянуть, спасибо за информацию
@SurenKhorenyan
@SurenKhorenyan 3 ай бұрын
Добрый день. А вы про какую библиотеку? FastAPI JWT Auth обновлялась более четырех лет назад, python-jose обновлялась три года назад. Да даже библиотека PyJWT, которую я в видео рекомендую, обновлялась год назад. Скиньте ссылку тут или приходите обсуждать в чат в телеграм
Despicable Me Fart Blaster
00:51
_vector_
Рет қаралды 24 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 57 МЛН
FastAPI JWT Tutorial | How to add User Authentication
20:27
Eric Roby
Рет қаралды 46 М.
Как загрузить файлы в чат GPT?
2:44
GetBrand Studio
Рет қаралды 43 М.
FastAPI Authentication with  JWT (JSON Web Tokens)
56:18
Bek Brace
Рет қаралды 95 М.
Ты ТОЧНО станешь айтишником
12:44
Сурен Хоренян
Рет қаралды 2,4 М.
Despicable Me Fart Blaster
00:51
_vector_
Рет қаралды 24 МЛН