Flask JWT : utiliser pour tokeniser l’identité de l’utilisateur, authentifier les utilisateurs de l’API

Tirez parti de Flask JWT pour tokeniser l’identité de votre membre ou utilisateur et l’utiliser pour vous authentifier. C’est pour l’échange de données et l’UX

Dans ce chapitre, je parlerais de la façon d'exploiter Flask JWT pour tokeniser l'identité de votre membre ou utilisateur et l'utiliser pour vous authentifier. C'est un moyen extrêmement courant et utile d'échanger des données et d'améliorer l'expérience utilisateur. Il s'adapte à tous les secteurs, tels que le marketing numérique, le commerce électronique, le SaaS, les médias et les activités de données.

Table des matières : Utiliser Flask JWT pour tokeniser les identités des utilisateurs

Pourquoi votre API a besoin d'une authentification par jeton

En tant que développeur ou vendeur d'inventaire numérique, s'assurer que l'authentification de l'identité de l'utilisateur fonctionne de manière transparente est l'une des tâches quotidiennes les plus importantes pour sécuriser l'entreprise ou les applications. De plus, un vendeur d'inventaire de données ne veut voir personne qui puisse accéder à l'API sans limite ou dans le cadre d'un système de suivi. C'est simplement la raison pour laquelle nous avons besoin d'une authentification par jeton d'API du point de vue de la sécurité et des affaires.

En attendant, pour les expériences utilisateur, vous espérez que vos utilisateurs d'API pourront se connecter à leurs comptes d'API en ajoutant simplement un jeton dans le point de terminaison de l'API. Ou via un jeton API, ils peuvent accéder aux données analysées pertinentes, les connecter aux applications et profiter d'expériences utilisateur personnalisées. C'est un moyen transparent, rapide et sécurisé.

Dans l'ensemble, la tokenisation de l'identité de l'utilisateur est cruciale, utile et efficace dans l'échange et la communication de données, quels que soient les secteurs dans lesquels vous travaillez. En particulier, nous entrons dans l'ère des jardins muraux sans cookies et plus grands.

Qu'est-ce que Flask JWT

Avant d'élaborer sur le JWT, tout d'abord, nous devons savoir ce qu'est le flacon. Flask est essentiellement un micro-framework basé sur python utilisé pour créer une API de repos. L'idée centrale du framework Flask est de garder les choses simples mais extensibles. Il permet aux développeurs d'ajouter des extensions personnalisées pour l'intégration de la base de données, l'authentification, la gestion des sessions et tous les autres systèmes principaux en fonction des préférences.

Auparavant, j'ai parlé de Flask pour créer une application de bot Shopify. Si vous êtes intéressé, veuillez consulter cette pièce.

https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-web-application-using-flask-and-heroku/

Les jetons Web JSON (JWT) sont un moyen sécurisé et compact de transmettre des données entre deux parties à l'aide d'objets JSON. Donc, essentiellement, si votre application est construite à l'aide de Flask, JWT est une option populaire pour vous permettre de créer une API token_required ou un accès utilisateur.

JSON utilise deux types de structure différents pour transmettre des données. L'un est sérialisé. Ce type est utilisé lorsque vous transférez des informations sur le réseau via chaque demande et réponse. Il contient une charge utile, un en-tête et une signature.

L'autre est désérialisé. Ce type est utilisé lorsque vous lisez/écrivez des informations sur le jeton. Il contient une charge utile et un en-tête.

J'ai essayé de le comparer avec YAML précédemment, veuillez consulter cet article si vous souhaitez en savoir plus.

https://www.easy2digital.com/automation/data/python-knowledge-hub-json-vs-yaml-which-data-serialization-is-better/

Feuille de route de la tokenisation

Comme mentionné, JWT est pour l'authentification de l'utilisateur comme premier objectif initial. Donc, fondamentalement, il y a trois étapes principales dans toute la feuille de route de génération.

  • Créer une colonne de jeton dans la base de données utilisateur créée à l'aide de sqlalchemy
  • Encoder un nouveau jeton d'utilisateur d'inscription à partir de l'action d'enregistrement de l'utilisateur
  • Construisez une fonction token_required qui peut être appliquée à toutes les routes Flask qui nécessitent l'authentification de l'utilisateur que vous souhaitez

Colonne Token, Encode et Decode

Je prendrais sqlalchemy par exemple. Tout d'abord, nous devons ajouter une colonne pour stocker le jeton unique de chaque utilisateur. Pour le nommage, nous pouvons par exemple définir "token". Mais cela dépend de votre préférence. Pour plus de détails concernant la base de données Flask, je publierai un autre article.

La deuxième étape consiste à ajouter la méthode de codage JWT dans la nouvelle route d'inscription de l'utilisateur. C'est parce que nous voulons attribuer un jeton d'API unique à tous les nouveaux utilisateurs lorsqu'ils terminent leurs inscriptions. Ici, je sélectionne uniquement le code d'invitation que nous envoyons à l'utilisateur pour l'inscription comme référence d'encodage du jeton. Vous pouvez soit utiliser un autre point de référence, soit le rendre plus complexe en utilisant des points de référence multip.

Enfin, nous utilisons la méthode de la classe d'utilisateurs de la base de données pour ajouter le nouveau jeton au nouvel utilisateur. C'est unique pour elle ou lui.

Jeton requis – encapsule et décode

Il est maintenant prêt à créer la fonction requise par le jeton. Nous en avons besoin car nous devons l'attribuer à toutes les routes dont nous avons besoin pour l'authentification de l'utilisateur. Le but est tout aussi bien que le login_required.

Dans cette fonction, le composant clé est de décoder le jeton et de voir si la valeur correspond à celle créée lors de la nouvelle inscription avant.

Avant d'entrer dans la section de décodage, nous devons importer un module qui functools et wraps.

La fonction wraps fait partie du module functools de Python. Il encapsule et met à jour la fonction wrapper du décorateur en copiant les attributs tels que _name__, __doc__, la docstring, etc.

def token_required(f):

@wraps(f)

def decorate(*args, **kwargs):

Vous pouvez utiliser des wraps comme décorateur pour corriger les docstrings et les noms des fonctions décorées. Pourquoi est-ce important ? Cela ressemble à un cas étrange au début, mais si vous écrivez une API ou tout autre code que quelqu'un d'autre que vous utilisera, cela pourrait être important. La raison en est que lorsque vous utilisez l'introspection de Python pour comprendre le code de quelqu'un d'autre, une fonction décorée renverra les mauvaises informations.

Deux composants

Tout d'abord, nous devons ajouter un paramètre de jeton sur notre point de terminaison API et le nommer, tel qu'un jeton. Lorsque les gens appellent l'API, ils ajoutent leurs jetons uniques dans ce paramètre, comme www.abe.com?token=12324343

token = request.args.get('token')

Ensuite, nous pouvons créer une condition si le jeton est manquant ou invalide, ou correct. Par exemple, pour que l'état soit correct, le jeton décodé doit correspondre au public_id créé lors de l'inscription de l'utilisateur. Nous pourrions donc interroger la base de données en filtrant l'utilisateur public_id.

Si l'identifiant ne correspond pas au jeton décodé, le message de réponse n'est pas valide. Ou si le point de terminaison de l'API ne dispose pas du jeton, le message de réponse indique que le jeton est manquant. Cela garantit donc que toute personne utilisant l'API a été authentifiée.

Exemples complets de script Python de Flask JWT

Si vous êtes intéressé par le script python complet du Chapitre 54 – Utiliser Flask JWT pour tokeniser les identités des utilisateurs et authentifier les utilisateurs, veuillez vous inscrire à notre newsletter en ajoutant le message "Chapitre 54" . Nous vous enverrions le script immédiatement dans votre boîte aux lettres.

Contactez-nous

J'espère que vous apprécierez la lecture du Chapitre 54 – Utiliser Flask JWT pour tokeniser les identités des utilisateurs et authentifier les utilisateurs. Si vous l'avez fait, veuillez nous soutenir en faisant l'une des choses énumérées ci-dessous, car cela aide toujours notre chaîne.

  • Soutenez et faites un don à notre chaîne via PayPal ( paypal.me/Easy2digital )
  • Abonnez-vous à ma chaîne et activez la cloche de notification Chaîne Youtube Easy2Digital .
  • Suivez et aimez ma page Page Facebook Easy2Digital
  • Partagez l'article sur votre réseau social avec le hashtag #easy2digital
  • Achetez des produits avec le code de réduction Easy2Digital 10% OFF ( Easy2DigitalNewBuyers2021)
  • Vous vous inscrivez à notre newsletter hebdomadaire pour recevoir les derniers articles, vidéos et code de réduction Easy2Digital