Passer au contenu du pied de page
AIDE PYTHON

PyJWT Python (Comment ça marche : Un guide pour les développeurs)

Parmi les bibliothèques Python, PyJWT est la bibliothèque Python la plus populaire qui offre un moyen pratique de coder et décoder des jetons Web JSON (JWTs) dans des projets Python. Les JWTs sont un moyen compact et sûr pour représenter des assertions à transférer entre deux parties. Le package PyJWT facilite l'implémentation de jetons web JSON en Python. Les jetons JWT sont largement utilisés pour l'authentification et l'échange d'informations dans les applications Web. Le package possède une documentation riche en ligne pour soutenir les développeurs. In this article, we will also look into IronPDF from IronSoftware to generate PDF documents later.

Caractéristiques clés

  1. Coding et décodage JWT: PyJWT vous permet de coder et décoder des JWTs facilement. Vous pouvez créer un jeton en codant une charge utile avec une clé secrète et un algorithme et le décoder plus tard pour vérifier la charge utile.
  2. Support pour plusieurs algorithmes: PyJWT prend en charge divers algorithmes pour signer les jetons, y compris HMAC (HS256, HS384, HS512) et RSA (RS256, RS384, RS512). Il prend en charge à la fois les algorithmes symétriques et asymétriques.
  3. Validation des assertions: La bibliothèque fournit un support intégré pour valider les assertions standard telles que iss (émetteur), sub (sujet), aud (audience) et exp (temps d'expiration), aidant à une authentification sécurisée basée sur des jetons.

Installation

Pour installer PyJWT, vous pouvez utiliser pip :

pip install pyjwt
pip install pyjwt
SHELL

Pour un support cryptographique supplémentaire, vous pouvez l'installer avec l'option crypto :

pip install pyjwt[crypto]
pip install pyjwt[crypto]
SHELL

Utilisation de base

Voici un simple exemple d'utilisation de PyJWT dans une implémentation Python :

import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
PYTHON

Dans cet exemple, nous créons un JWT en codant une charge utile avec une clé secrète en utilisant l'algorithme HS256. Nous décodons alors le jeton pour récupérer la charge utile originale.

Sortie

PyJWT Python (Comment ça fonctionne : Un guide pour les développeurs) : Figure 1 - Exemple de réponse de charge utile après décodage

Cas d'utilisation

  1. Authentification : Les JWTs sont couramment utilisés pour l'authentification dans les applications Web. Après qu'un utilisateur se soit connecté, le serveur génère un JWT et renvoie le jeton signé au client. Le client peut vérifier l'identité de l'utilisateur à l'aide de ce jeton et inclure le jeton dans les requêtes suivantes.
  2. Échange d'informations : Les parties peuvent transmettre des informations de manière sécurisée en utilisant des JWTs. La charge utile peut inclure n'importe quelle donnée ; la signature du jeton garantit son intégrité.

Présentation d'IronPDF

PyJWT Python (Comment ça fonctionne : Un guide pour les développeurs) : Figure 2 - IronPDF pour Python : La bibliothèque PDF de Python

IronPDF est une bibliothèque Python puissante pour créer, éditer et signer des PDFs en utilisant HTML, CSS, images et JavaScript. Elle offre des performances de haute qualité tout en utilisant une mémoire minimale. Users can generate PDFs from HTML, merge or split PDF documents, extract text and images from PDFs, apply watermarks, rasterize a PDF to image formats like JPEG and PNG, encrypt PDF files, and more. IronPDF offre une large gamme d'opérations sur les PDF.

Principales Caractéristiques d'IronPDF

Conversion HTML en PDF

Les utilisateurs peuvent convertir des fichiers HTML, des chaînes HTML, et des URLs en PDFs. Par exemple, rendre une page Web en PDF en utilisant le moteur Chrome PDF de IronPDF.

Support multi-plateforme

IronPDF est conçu pour les versions Python 3+ et fonctionne sur Windows, Mac, Linux, ou sur des plateformes Cloud.

IronPDF is also available in .NET, Java, Python, and Node.js.

Édition et signature

L'utilisateur peut définir des propriétés, ajouter de la sécurité avec des mots de passe et des permissions et appliquer des signatures numériques aux PDFs à l'aide d'IronPDF.

Templates de page et réglages

IronPDF vous permet de personnaliser des documents PDF avec des en-têtes, pieds de page, numéros de page, et marges ajustables. Il supporte également des mises en page réactives et des tailles de papier personnalisées.

Conformité aux normes

Le package IronPDF adhère aux normes PDF telles que PDF/A et PDF/UA. Il prend en charge l'encodage de caractères UTF-8 et gère les ressources telles que les images, CSS, et polices.

Générer des documents PDF en utilisant IronPDF et PyJWT

Prérequis IronPDF

  1. IronPDF utilise .NET 6.0 comme technologie sous-jacente. Assurez-vous donc que l'exécution .NET 6.0 est installée sur votre système.
  2. Python 3.0+ : Vous devez avoir installé la version 3 de Python ou une version ultérieure.
  3. Pip : Installez le programme d'installation de package Python pip pour installer le package IronPDF.

Pour commencer, créons un fichier Python à la racine du projet pour ajouter nos scripts. Dans cet exemple, nous utilisons Visual Studio Code comme éditeur de code.

Ouvrez Visual Studio Code et créez un fichier, pyjwtDemo.py.

Installez la bibliothèque IronPDF :

pip install ironpdf
pip install pyjwt
pip install ironpdf
pip install pyjwt
SHELL

Puis, ajoutez le code ci-dessous pour démontrer l'utilisation des packages Python IronPDF et PyJWT :

import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
PYTHON

Explication du code

Ce code montre comment utiliser la bibliothèque jwt (JSON Web Token) avec IronPDF pour créer un document PDF incluant des exemples de codage et de décodage de JWTs.

Voici un aperçu des fonctions de chaque composant de code :

  1. Imports et configuration de la clé de licence:

    Importe la bibliothèque jwt pour la fonctionnalité de jeton Web JSON et ChromePdfRenderer d'IronPDF pour la génération de PDFs. Définit la clé de licence pour IronPDF pour activer ses fonctionnalités.

  2. Configuration du contenu HTML :

    Initialise la variable content avec un balisage HTML à inclure dans le document PDF, illustrant les différentes étapes du processus.

  3. Codage d'un JWT :

    • Définit un dictionnaire de charge utile contenant les données à coder dans le JWT (payload).
    • Spécifie une clé secrète (secret) pour signer le JWT avec l'algorithme HMAC utilisant SHA-256 (HS256).
    • Génère un jeton JWT en utilisant la fonction jwt.encode() et l'imprime.
  4. Décodage d'un JWT :

    • Ajoute un balisage HTML pour démontrer le décodage du JWT.
    • Décode le JWT précédemment généré (token) en utilisant la fonction jwt.decode() avec la même clé secrète et algorithme utilisés pour le codage.
  5. Génération de PDF :

    • Il utilise ChromePdfRenderer pour rendre la chaîne HTML content dans un document PDF et sauvegarde le fichier PDF généré sous le nom "Demo-pyjwt.pdf."

Cette configuration permet la création d'un document PDF qui montre l'utilisation de JWTs avec IronPDF pour générer des PDFs de qualité professionnelle.

Sortie

PyJWT Python (Comment ça fonctionne : Un guide pour les développeurs) : Figure 3 - Exemple de sortie console

PDF

PyJWT Python (Comment ça fonctionne : Un guide pour les développeurs) : Figure 4 - Exemple de sortie PDF utilisant IronPDF

Licence IronPDF

PyJWT Python (Comment ça fonctionne : Un guide pour les développeurs) : Figure 5 - Page de licence IronPDF

IronPDF fournit une clé de licence d'essai pour permettre aux utilisateurs de découvrir ses nombreuses fonctionnalités avant l'achat.

Placez la clé de licence au début du script avant d'utiliser le package IronPDF :

from ironpdf import License

# Apply your license key
License.LicenseKey = "your-key"
from ironpdf import License

# Apply your license key
License.LicenseKey = "your-key"
PYTHON

Conclusion

PyJWT est une bibliothèque puissante et flexible pour travailler avec les JSON Web Tokens en Python. Sa facilité d'utilisation et son support pour divers algorithmes en font un choix populaire pour implémenter l'authentification basée sur les jetons et l'échange sécurisé d'informations dans les applications Web. D'autre part, IronPDF est une bibliothèque de génération de PDFs polyvalente et riche en fonctionnalités qui aide à documenter les résultats de manière standard. Ces deux bibliothèques peuvent faire des merveilles pour les développeurs afin d'améliorer leurs compétences.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite