フッターコンテンツにスキップ
PYTHONヘルプ

PyJWT Python (開発者向けのしくみ:ガイド)

Pythonライブラリの中で、PyJWTはPythonプロジェクトでJSON Webトークン(JWT)をエンコードおよびデコードするための便利な方法を提供する最も人気のあるPythonライブラリです。 JWTは、ある当事者から別の当事者に転送される主張を表現するためのコンパクトでURLセーフな手段です。 PyJWTパッケージはPythonでのJSONウェブトークンの実装を容易にします。 JWTトークンは、ウェブアプリケーションでの認証と情報交換に広く使用されています。 このパッケージは、開発者をサポートするために豊富なオンラインドキュメントを備えています。 In this article, we will also look into IronPDF from IronSoftware to generate PDF documents later.

主要な特徴

  1. JWTのエンコードとデコード: PyJWTを使用すると、JWTを簡単にエンコードおよびデコードできます。 ペイロードをシークレットキーとアルゴリズムでエンコードしてトークンを作成し、その後デコードしてペイロードを検証できます。
  2. 複数のアルゴリズムのサポート: PyJWTは、HMAC (HS256, HS384, HS512)およびRSA (RS256, RS384, RS512)を含むトークン署名のためのさまざまなアルゴリズムをサポートしています。 対称アルゴリズムと非対称アルゴリズムの両方をサポートしています。
  3. クレーム検証: ライブラリは、標準のクレーム(例:iss(発行者)、sub(件名)、aud(対象)、exp(有効期限))の検証をサポートし、トークンベースの安全な認証を支援します。

インストール

PyJWTをインストールするには、pipを使用できます。

pip install pyjwt
pip install pyjwt
SHELL

暗号化サポートを追加するには、cryptoオプションでインストールできます。

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

基本的な使い方

Python実装でPyJWTを使用するシンプルな例を以下に示します。

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

この例では、HS256アルゴリズムを使用してシークレットキーでペイロードをエンコードしてJWTを作成します。 その後、トークンをデコードして元のペイロードを取得します。

出力

PyJWT Python(How It Works: A Guide for Developers):図1 - デコード後の応答ペイロードの例

使用例

  1. 認証: JWTはウェブアプリケーションでの認証によく使用されます。 ユーザーがログインした後、サーバーはJWTを生成し、署名されたトークンをクライアントに返します。 クライアントは、このトークンを使用してユーザーの身元を検証し、後続のリクエストにトークンを含めることができます。
  2. 情報交換: 当事者はJWTを使用して情報を安全に送信できます。 ペイロードには任意のデータを含めることができ、 トークンの署名はその整合性を保証します。

IronPDFの紹介

PyJWT Python(How It Works: A Guide for Developers):図2 - IronPDF for Python:Python PDFライブラリ

IronPDFは、HTML、CSS、画像、およびJavaScriptを使用してPDFを作成、編集、署名するための強力なPythonライブラリです。 最小限のメモリを使用しながら高品質のパフォーマンスを提供します。 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は幅広いPDF操作を提供します。

IronPDFの主な機能

HTMLからPDFへの変換

ユーザーはHTMLファイル、HTML文字列、URLをPDFに変換できます。 たとえば、IronPDFのChrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングできます。

クロスプラットフォームサポート

IronPDFはPython 3+バージョン用に設計されており、Windows、Mac、Linux、クラウドプラットフォームで動作します。

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

編集と署名

ユーザーはIronPDFを使用して、プロパティを設定したり、パスワードと権限でセキュリティを追加したり、PDFにデジタル署名を適用したりできます。

ページテンプレートと設定

IronPDFを使用してヘッダー、フッター、ページ番号、調整可能なマージンを使用してPDFドキュメントをカスタマイズできます。 また、レスポンシブレイアウトとカスタム用紙サイズをサポートしています。

標準準拠

IronPDFパッケージはPDF/AやPDF/UAなどのPDF標準に準拠しています。 UTF-8文字エンコーディングをサポートし、画像、CSS、フォントなどのアセットを処理します。

IronPDFとPyJWTを使用してPDFドキュメントを生成

IronPDFの前提条件

  1. IronPDF は .NET 6.0 を基礎技術として使用しています。 したがって、.NET 6.0ランタイムがシステムにインストールされていることを確認してください。
  2. Python 3.0+: Python のバージョン 3 以降がインストールされている必要があります。
  3. Pip: PythonパッケージインストーラーpipをインストールしてIronPDFパッケージをインストールします。

始めるには、プロジェクトのルートにPythonファイルを作成し、スクリプトを追加しましょう。この例では、コードエディターとしてVisual Studio Codeを使用します。

Visual Studio Codeを開き、ファイルpyjwtDemo.pyを作成します。

IronPDFライブラリをインストール:

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

次に、以下のコードを追加してIronPDFおよびPyJWT 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

コードの説明

このコードスニペットは、jwt(JSON Webトークン)ライブラリを使用してIronPDFと共にJWTのエンコードおよびデコード例を含むPDFドキュメントを作成する方法を示しています。

以下は、各コードコンポーネントの機能の概要です:

  1. インポートとライセンスキーの設定:

    JSON Webトークン機能用にjwtライブラリをインポートし、IronPDFでのPDF生成用にChromePdfRendererをインポートします。 IronPDFの機能を有効にするためにライセンスキーを設定します。

  2. HTMLコンテンツの設定:

    PDFドキュメントに含めるためのHTMLマークアップでcontent変数を初期化し、プロセスのさまざまなステップを示します。

  3. JWTのエンコード:

    • JWTにエンコードするためのデータを含むペイロード辞書(payload)を定義します。
    • HMACアルゴリズムを使用したJWTの署名用にシークレットキー(secret)を指定します。SHA-256(HS256)を使用します。
    • jwt.encode()関数を使用してJWTトークンを生成し、印刷します。
  4. JWTのデコード:

    • JWTデコードを示すHTMLマークアップを追加します。
    • 同じシークレットとエンコードに使用したアルゴリズムを使用して、生成されたJWT(token)をjwt.decode()関数でデコードします。
  5. PDF生成:

    • ChromePdfRendererを使用してcontent HTML文字列をレンダリングし、生成したPDFファイルを"Demo-pyjwt.pdf"として保存します。

この設定により、IronPDFを使用してJWTを利用したプロフェッショナル品質のPDFを生成することができます。

出力

PyJWT Python(How It Works: A Guide for Developers):図3 - コンソール出力例

PDF

PyJWT Python(How It Works: A Guide for Developers):図4 - IronPDFを利用したPDF出力例

IronPDFライセンス

PyJWT Python(How It Works: A Guide for Developers):図5 - IronPDFライセンシングページ

IronPDFは、その豊富な機能を購入前にチェックできるようにトライアルライセンスキーを提供しています。

スクリプトを使用する前にライセンスキーを配置し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

結論

PyJWTは、PythonでJSON Webトークンを扱うための強力で柔軟なライブラリです。 その使いやすさとさまざまなアルゴリズムのサポートにより、トークンベースの認証と安全な情報交換をウェブアプリケーションに実装するための人気のある選択肢となっています。 一方、IronPDFは多用途で機能豊富なPDF生成ライブラリで、標準的な方法で結果を文書化するのに役立ちます。 これらの両方のライブラリは、開発者がスキルセットを向上させるために素晴らしい成果を上げることができます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。