Flask JWT: использование для токенизации удостоверения пользователя, аутентификации пользователей API
Используйте Flask JWT для токенизации личности вашего участника или пользователя и используйте ее для аутентификации. Это для обмена данными и UX
В этой главе я расскажу о том, как использовать Flask JWT для токенизации личности вашего члена или пользователя и использования ее для аутентификации. Это очень распространенный и полезный способ обмена данными и улучшения взаимодействия с пользователем. Его можно адаптировать в любом секторе, таком как цифровой маркетинг, электронная коммерция, SaaS, медиа и бизнес данных.
Содержание: Использование Flask JWT для токенизации удостоверений пользователей
- Почему вашему API нужна аутентификация по токену
- Что такое Flask JWT
- Дорожная карта токенизации
- Столбец токенов, кодирование и декодирование
- Требуемая функция токена — перенос и декодирование
- Полный пример скрипта Python для Flask JWT
Почему вашему API нужна аутентификация по токену
Для разработчика или продавца цифрового инвентаря обеспечение беспрепятственной аутентификации удостоверения пользователя является одной из самых важных ежедневных задач по обеспечению безопасности бизнеса или приложений. Кроме того, продавец инвентаризации данных не хочет видеть кого-либо, кто может получить доступ к API без ограничений или в рамках системы отслеживания. Это просто то, почему нам нужна аутентификация токена API с точки зрения безопасности и бизнеса.
Между тем, для взаимодействия с пользователем вы надеетесь, что пользователи вашего API смогут входить в свои учетные записи API, просто добавляя токен в конечную точку API. Или с помощью токена API они могут получать доступ к соответствующим проанализированным данным, связывать их с приложениями и пользоваться персонализированным пользовательским интерфейсом. Это удобный, быстрый и безопасный способ.
В целом, токенизация идентификатора пользователя имеет решающее значение, полезна и эффективна для обмена данными и коммуникации, в каких бы секторах вы ни работали.
Что такое Flask JWT
Перед разработкой JWT, прежде всего, нам нужно знать, что такое flask. По сути, Flask — это микрофреймворк на основе Python, используемый для создания API для отдыха. Основная идея фреймворка Flask — сделать вещи простыми, но расширяемыми. Это позволяет разработчикам добавлять пользовательские расширения для интеграции с базой данных, аутентификации, управления сеансами и всех других серверных систем в зависимости от предпочтений.
Ранее я рассказывал о Flask для создания бот-приложения Shopify. Если вам интересно, пожалуйста, ознакомьтесь с этим произведением.
https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-web-application-using-flask-and-heroku/
Веб-токены JSON (JWT) — это безопасный и компактный способ передачи данных между двумя сторонами с помощью объектов JSON. Таким образом, если ваше приложение создано с использованием Flask, JWT является популярным вариантом для создания API-интерфейса, требующего токена, или пользовательского доступа.
JSON использует два разных типа структуры для передачи данных. Один сериализован. Этот тип используется, когда вы передаете информацию в сеть через каждый запрос и ответ. Он содержит полезную нагрузку, заголовок и подпись.
Другой десериализован. Этот тип используется, когда вы читаете/записываете информацию в токен. Он содержит полезную нагрузку и заголовок.
Ранее я пытался сравнить его с YAML, пожалуйста, ознакомьтесь с этой статьей, если хотите узнать больше.
Дорожная карта токенизации
Как уже упоминалось, JWT предназначен для аутентификации пользователя в качестве первой первоначальной цели. Таким образом, в дорожной карте всего поколения есть три основных шага.
- Создайте столбец токена в пользовательской базе данных, созданной с помощью sqlalchemy.
- Закодируйте новый токен пользователя для регистрации из действия регистрации пользователя.
- Создайте функцию token_required, которую можно применять к любым маршрутам Flask, требующим аутентификации пользователя.
Столбец токена, кодирование и декодирование
Я бы взял, например, sqlalchemy. Прежде всего, нам нужно добавить столбец для хранения уникального токена, который есть у каждого пользователя. Например, для именования мы можем установить «токен». Но это зависит от ваших предпочтений. Для более подробной информации о базе данных Flask я выпущу еще одну статью.
Шаг № 2 — добавить метод кодирования JWT в маршрут регистрации нового пользователя. Это потому, что мы хотим назначить уникальный токен API для всех новых пользователей, когда они завершат регистрацию. Здесь я выбираю только код приглашения, который мы отправляем пользователю для регистрации, в качестве ссылки на кодировку токена. Вы можете либо использовать другую опорную точку, либо усложнить ее, используя множественные опорные точки.
И последнее, но не менее важное: мы используем метод пользовательского класса базы данных, чтобы добавить новый токен новому пользователю. Это уникально для нее или для него.
Требуется токен — обертывания и декодирование
Теперь все готово для создания функции, требующей токена. Нам это нужно, потому что нам нужно назначить его любым маршрутам, которые нам нужны для аутентификации пользователя. Цель такая же, как и у login_required.
В этой функции ключевым компонентом является декодирование токена и проверка, соответствует ли значение значению, созданному при новой регистрации ранее.
Прежде чем перейти к разделу декодирования, нам нужно импортировать модуль, который работает с инструментами и обертками.
Функция wraps является частью модуля functools Python. Он упаковывает и обновляет функцию-оболочку декоратора, копируя такие атрибуты, как _name__, __doc__, строку документации и т. д.
def token_required(f):
@wraps(f)
def decorate(*args, **kwargs):
Вы можете использовать обертки в качестве декоратора для исправления строк документации и имен декорированных функций. Почему это важно? Поначалу это звучит как странный пограничный случай, но если вы пишете API или любой другой код, который будет использовать кто-то, кроме вас, то это может быть важно. Причина в том, что когда вы используете самоанализ Python для понимания чужого кода, декорированная функция вернет неверную информацию.
Два компонента
Прежде всего, нам нужно добавить параметр токена в нашу конечную точку API и назвать его, например, токен. Когда люди вызывают API, они добавляют в этот параметр свои уникальные токены, например www.abe.com?token=12324343.
token = request.args.get('token')
Затем мы можем создать условие, если токен отсутствует, недействителен или верен. Например, для правильного статуса декодированный токен должен соответствовать public_id, созданному при регистрации пользователя. Таким образом, мы могли бы запросить базу данных, отфильтровав пользователя public_id.
Если идентификатор не совпадает с декодированным токеном, ответное сообщение недействительно. Или, если в конечной точке API отсутствует токен, в ответном сообщении будет указано, что токен отсутствует. Таким образом, он гарантирует, что любой, кто использует API, прошел аутентификацию.
Полные примеры сценариев Python для Flask JWT
Если вас интересует полный скрипт Python из главы 54 — Использование Flask JWT для токенизации пользовательских идентификаторов и аутентификации пользователей, пожалуйста , подпишитесь на нашу рассылку , добавив сообщение «Глава 54» . Мы отправим вам сценарий немедленно на ваш почтовый ящик.
Надеюсь, вам понравится читать главу 54 — Использование Flask JWT для токенизации удостоверений пользователей и аутентификации пользователей. Если вы это сделали, пожалуйста, поддержите нас, выполнив одно из перечисленных ниже действий, потому что это всегда помогает нашему каналу.
- Поддержите и пожертвуйте нашему каналу через PayPal ( paypal.me/Easy2digital )
- Подпишитесь на мой канал и включите колокольчик уведомлений канала Easy2Digital Youtube .
- Подписывайтесь и лайкайте мою страницу Страница Easy2Digital в Facebook
- Поделитесь статьей в своей социальной сети с хэштегом #easy2digital
- Покупайте товары с кодом скидки Easy2Digital 10% OFF ( Easy2DigitalNewBuyers2021)
- Вы подписываетесь на нашу еженедельную рассылку новостей, чтобы получать последние статьи, видео и коды скидок Easy2Digital.