エンジニアライフスタイルブログを運営しているミウラ(@miumiu06171)です。
普段はフリーランスでシステムエンジニアをしております。
今回は、Pythonのpyjwtライブラリを使ってエンコード(符号化)とデコード(復号化)する方法を紹介していきます。
動作確認には、Visual Studio Code (VS Code) を使用しているため、同様に確認したい方は、こちらの記事でVS CodeのPython開発環境を構築してみてください。
JWTとは
JWTとは、JSON形式のペイロードデータをBase64URLエンコードしたものです。
逆にJWTからJSON形式のペイロードデータにデコードすることもできます。
Pythonのpyjwtの使い方
Pythonのpyjwtを使って「HS256」というアルゴリズムでJSONのペイロードデータをJWTエンコードしたり、デコードする方法を紹介します。

pyjwtインストール(pip install pyjwt)
PythonでJWTを使うためのpyjwtライブラリを以下のpipコマンドでインストールします。
pyjwtエンコード(jwt.encode())
pyjwtを使ったJWTエンコードのサンプルコードは、以下の通りです。
JSONのペイロードデータと鍵(key)を準備し、pyjwtのencodeメソッドでJWTトークンを出力できます。
エンコードした結果例は、以下のとおりです。
pyjwtデコード(jwt.decode())
pyjwtを使ったJWTデコードのサンプルコードは、以下の通りです。
JWTトークンと鍵(key)を準備し、pyjwtのdecodeメソッドでJSONペイロードにデコードすることができます。
デコードした結果例は、以下のとおりです。
動作確認
こちらのサイトの「Algorithm」欄に「HS256」、「Encoded」欄に「<JWTトークン>」を入力することで、「Decoded」欄にデコード結果が表示されます。

この方法でも動作確認可能なので、ぜひ活用しましょう。
まとめ
いかがでしたでしょうか。
PythonでJWTを扱うときの参考にして頂ければと思います。
【関連記事】
【Python】pyjwt(RS256)のエンコード・デコード方法(公開鍵と秘密鍵を使用)
【TIPS】Python base64で文字コードのエンコード(符号化)・デコード(復号化)をマスター!