Рассмотрим тему JSON Web Token (JWT). Расскажу, что такое JWT и какие готовые библиотеки можно использовать для FastAPI.
Напишем свои обертки для выпуска и проверки токена при помощи PyJWT, а также обертки для хэширования и проверки пароля пользователя через bcrypt.
Реализуем вход пользователя через форму.
Установим срока жизни токена, добавим проверку валидности токена.
Научимся извлекать токен из запроса с через HTTPBearer (который возвращает HTTPAuthorizationCredentials) и при помощи OAuth2PasswordBearer.
Большое спасибо всем, кто поддерживает лайком, комментарием, а также материально!
Поддержать выход роликов (зарплата монтажеру)
- через Tinkoff https://tinkoff.ru/cf/6kbKWtKhapM
- бусти https://boosty.to/mahenzon
- sponsr https://sponsr.ru/suren/
- через CloudTips https://pay.cloudtips.ru/p/9a8fa641
Ссылки на соцсети:
- Канал и чат в ТГ https://t.me/Khorenyan
- Паблик в ВК https://vk.com/surenkhorenyan
- YouTube: https://www.youtube.com/@SurenKhorenyan
- RuTube https://rutube.ru/channel/29899055/
Видео №6 из серии роликов про FastAPI
Код тут: https://github.com/mahenzon/micro-shop/tree/7cee66248079513cbfc06b01d5a055954c92764a
Метки:
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 Огромное спасибо