Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

PyJWT Python (Jak działa: Przewodnik dla programistów)

Wśród bibliotek Pythona PyJWT jest najpopularniejszą biblioteką, która zapewnia wygodny sposób kodowania i dekodowania tokenów JSON Web Tokens (JWT) w projektach Pythona. JWT to kompaktowy, bezpieczny dla adresów URL sposób przedstawiania oświadczeń, które mają być przekazywane między dwiema stronami. Pakiet PyJWT ułatwia implementację tokenów JSON Web w języku Python. Tokeny JWT są szeroko stosowane do uwierzytelniania i wymiany informacji w aplikacjach internetowych. Pakiet zawiera obszerną dokumentację online, która stanowi wsparcie dla programistów. W tym artykule przyjrzymy się również IronPDF firmy IronSoftware, aby później generować dokumenty PDF.

Najważniejsze cechy

  1. Kodowanie i dekodowanie JWT: PyJWT pozwala w łatwy sposób kodować i dekodować tokeny JWT. Token można utworzyć, kodując ładunek za pomocą tajnego klucza i algorytmu, a następnie zdekodować go w celu weryfikacji ładunku.
  2. Obsługa wielu algorytmów: PyJWT obsługuje różne algorytmy podpisywania tokenów, w tym HMAC (HS256, HS384, HS512) i RSA (RS256, RS384, RS512). Obsługuje zarówno algorytmy symetryczne, jak i asymetryczne.
  3. Walidacja oświadczeń: Biblioteka zapewnia wbudowaną obsługę walidacji standardowych oświadczeń, takich jak iss (wydawca), sub (podmiot), aud (odbiorca) i exp (czas wygaśnięcia), wspomagając bezpieczne uwierzytelnianie oparte na tokenach.

Instalacja

Aby zainstalować PyJWT, możesz użyć pip:

pip install pyjwt
pip install pyjwt
SHELL

Aby uzyskać dodatkową obsługę kryptograficzną, można zainstalować ją z opcją crypto:

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

Podstawowe zastosowanie

Oto prosty przykład wykorzystania PyJWT w implementacji w języku 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

W tym przykładzie tworzymy token JWT poprzez zakodowanie ładunku za pomocą tajnego klucza przy użyciu algorytmu HS256. Następnie dekodujemy token, aby odzyskać oryginalną zawartość.

Wynik

PyJWT Python (Jak to działa: przewodnik dla programistów): Rysunek 1 – Przykładowa treść odpowiedzi po dekodowaniu

Przykłady zastosowań

  1. Uwierzytelnianie: Tokeny JWT są powszechnie używane do uwierzytelniania w aplikacjach internetowych. Po zalogowaniu się użytkownika serwer generuje token JWT i zwraca podpisany token do klienta. Klient może zweryfikować tożsamość użytkownika za pomocą tego tokenu i dołączyć go do kolejnych żądań.
  2. Wymiana informacji: Strony mogą bezpiecznie przesyłać informacje przy użyciu tokenów JWT. Treść może zawierać dowolne dane; Podpis tokenu gwarantuje jego integralność.

Przedstawiamy IronPDF

PyJWT Python (Jak to działa: przewodnik dla programistów): Rysunek 2 — IronPDF for Python: biblioteka PDF dla języka Python

IronPDF to potężna biblioteka Python służąca do tworzenia, edycji i podpisywania plików PDF przy użyciu HTML, CSS, obrazów i JavaScript. Zapewnia wysoką wydajność przy minimalnym zużyciu pamięci. Użytkownicy mogą generować pliki PDF z HTML, łączyć lub dzielić dokumenty PDF, wyodrębniać tekst i obrazy z plików PDF, nakładać znaki wodne, rasteryzować pliki PDF do formatów obrazów, takich jak JPEG i PNG, szyfrować pliki PDF i nie tylko. IronPDF oferuje szeroki zakres operacji na plikach PDF.

Najważniejsze funkcje IronPDF

Konwersja HTML do PDF

Użytkownicy mogą konwertować pliki HTML, ciągi znaków HTML i adresy URL do formatu PDF. Na przykład, renderuj stronę internetową jako plik PDF przy użyciu renderera PDF dla przeglądarki Chrome firmy IronPDF.

Obsługa wielu platform

IronPDF jest przeznaczony dla wersji Python 3+ i działa na systemach Windows, Mac, Linux oraz platformach chmurowych.

IronPDF jest również dostępny w środowiskach .NET, Java, Python i Node.js.

Redakcja i podpisanie

Za pomocą IronPDF użytkownik może ustawiać właściwości, zwiększać bezpieczeństwo za pomocą haseł i uprawnień oraz stosować podpisy cyfrowe w plikach PDF.

Szablony stron i ustawienia

IronPDF pozwala dostosowywać dokumenty PDF za pomocą nagłówków, stopek, numerów stron i regulowanych marginesów. Obsługuje również responsywne układy i niestandardowe rozmiary papieru.

Zgodność z normami

Pakiet IronPDF jest zgodny ze standardami PDF, takimi jak PDF/A i PDF/UA. Obsługuje kodowanie znaków UTF-8 oraz pliki takie jak obrazy, CSS i czcionki.

Generowanie dokumentów PDF przy użyciu IronPDF i PyJWT

Wymagania wstępne IronPDF

  1. IronPDF wykorzystuje .NET 6.0 jako technologię bazową. Dlatego upewnij się, że środowisko uruchomieniowe .NET 6.0 jest zainstalowane w Twoim systemie.
  2. Python 3.0+: Musisz mieć zainstalowaną wersję Pythona 3 lub nowszą.
  3. Pip: Zainstaluj instalator pakietów Python pip, aby zainstalować pakiet IronPDF.

Na początek utwórzmy plik Python w katalogu głównym projektu, aby dodać nasze skrypty. W tym przykładzie jako edytor kodu używamy Visual Studio Code.

Otwórz Visual Studio Code i utwórz plik pyjwtDemo.py.

Zainstaluj bibliotekę IronPDF:

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

Następnie dodaj poniższy kod, aby zademonstrować użycie pakietów IronPDF i PyJWT dla języka Python:

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

Wyjaśnienie kodu

Ten fragment kodu pokazuje, jak używać biblioteki jwt (JSON Web Token) wraz z IronPDF do tworzenia dokumentu PDF zawierającego przykłady kodowania i dekodowania tokenów JWT.

Poniżej znajduje się przegląd funkcji każdego komponentu kodu:

  1. Importy i konfiguracja klucza licencyjnego:

    Importuje bibliotekę jwt zapewniającą funkcjonalność JSON Web Token oraz ChromePdfRenderer z IronPDF do generowania plików PDF. Ustawia klucz licencyjny dla IronPDF w celu włączenia jego funkcji.

  2. Konfiguracja treści HTML:

    Inicjuje zmienną content za pomocą znaczników HTML, które mają zostać włączone do dokumentu PDF, ilustrując różne etapy procesu.

  3. Kodowanie JWT:

    • Definiuje słownik ładunku zawierający dane, które mają zostać zakodowane w JWT (payload).
    • Określa tajny klucz (secret) do podpisywania JWT za pomocą algorytmu HMAC z wykorzystaniem SHA-256 (HS256).
    • Generuje token JWT przy użyciu funkcji jwt.encode() i PRINTuje go.
  4. Dekodowanie JWT:

    • Dodaje znaczniki HTML w celu zademonstrowania dekodowania JWT.
    • Dekoduje wcześniej wygenerowany token JWT (token) przy użyciu funkcji jwt.decode() z tym samym sekretem i algorytmem, co podczas kodowania.
  5. Generowanie plików PDF:

    • Wykorzystuje ChromePdfRenderer do renderowania ciągu HTML content do dokumentu PDF i zapisuje wygenerowany plik PDF jako "Demo-pyjwt.pdf".

Taka konfiguracja pozwala na utworzenie dokumentu PDF, który pokazuje wykorzystanie tokenów JWT w połączeniu z IronPDF do generowania plików PDF o profesjonalnej jakości.

Wynik

PyJWT Python (Jak to działa: przewodnik dla programistów): Rysunek 3 — Przykładowy wynik konsoli

PDF

PyJWT Python (Jak to działa: przewodnik dla programistów): Rysunek 4 – Przykładowy plik PDF wygenerowany przy użyciu IronPDF

Licencja IronPDF

PyJWT Python (Jak to działa: przewodnik dla programistów): Rysunek 5 – Strona licencyjna IronPDF

IronPDF udostępnia klucze licencyjne dla Licencji Trial, aby umożliwić użytkownikom zapoznanie się z bogatym zestawem funkcji przed zakupem.

Umieść klucz licencyjny na początku skryptu przed użyciem pakietu 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

Wnioski

PyJWT to potężna i elastyczna biblioteka do pracy z tokenami JSON Web Tokens w języku Python. Łatwość użytkowania i obsługa różnych algorytmów sprawiają, że jest to popularny wybór do wdrażania uwierzytelniania opartego na tokenach oraz bezpiecznej wymiany informacji w aplikacjach internetowych. Z drugiej strony IronPDF to wszechstronna i bogata w funkcje biblioteka do generowania plików PDF, która pomoże udokumentować wyniki w standardowy sposób. Obie te biblioteki mogą zdziałać cuda, pomagając programistom w poszerzaniu ich umiejętności.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie