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. Dans cet article, nous examinerons également IronPDF de Iron Software pour générer des documents PDF plus tard.

Caractéristiques clés

  1. Encodage et décodage JWT : PyJWT vous permet d'encoder et de décoder facilement les JWT. 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. Prise en charge de plusieurs algorithmes : PyJWT prend en charge divers algorithmes pour la signature des jetons, notamment 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 revendications : La bibliothèque fournit une prise en charge intégrée de la validation des revendications standard telles que iss (émetteur), sub (sujet), aud (audience) et exp (date d'expiration), facilitant l'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 marche : un guide pour les développeurs) : Figure 1 - Exemple de charge utile de réponse après décodage

Cas d'utilisation

  1. Authentification : Les JWT 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 en toute sécurité à l'aide de JWT. 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 marche : un guide pour les développeurs) : Figure 2 - IronPDF for Python : La bibliothèque PDF 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. Les utilisateurs peuvent générer des PDFs à partir de HTML, fusionner ou diviser des documents PDF, extraire du texte et des images de PDFs, appliquer des filigranes, rasteriser un PDF en image aux formats comme JPEG et PNG, chiffrer des fichiers PDF, et plus. 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 est également disponible en .NET, Java, Python, et 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 using 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 fragment de code démontre comment utiliser la bibliothèque jwt (JSON Web Token) avec IronPDF pour créer un document PDF incluant des exemples de codage et décodage de JWT.

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

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

    Importe la bibliothèque jwt pour la fonctionnalité JSON Web Token et ChromePdfRenderer de IronPDF pour la génération de PDF. 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 différentes étapes du processus.

  3. Encodage d'un JWT :

    • Définit un dictionnaire de charge utile contenant des données à encoder dans le JWT (payload).
    • Spécifie une clé secrète (secret) pour signer le JWT avec l'algorithme HMAC en 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 le même secret et algorithme utilisé pour l'encodage.
  5. Génération de PDF :

    • Utilise ChromePdfRenderer pour rendre la chaîne HTML content en un document PDF et enregistre le fichier PDF généré sous "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 marche : un guide pour les développeurs) : Figure 3 - Exemple de sortie console

PDF

PyJWT Python (Comment ça marche : un guide pour les développeurs) : Figure 4 - Exemples de sortie PDF using IronPDF

Licence IronPDF

PyJWT Python (Comment ça marche : un guide pour les développeurs) : Figure 5 - Page de licences 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me