2022年3月2日水曜日

Python で jwt を試してみた

Python で jwt を試してみた

概要

過去に Ruby で jwt で試しました
今回は Python で試してみました

準備

  • pipenv install pyjwt

サンプルコード

import jwt

# 文字列 -> json web token
encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
print(encoded_jwt)

# json web token -> 文字列
decoded_jwt = jwt.decode(encoded_jwt, "secret", algorithms=["HS256"])
print(decoded_jwt)

鍵を使った場合

別途 cryptography が必要になります

  • pipenv install cryptography

pem 形式の鍵をテスト用に作成します

  • ssh-keygen -t rsa -b 4096 -m PEM -f id_rsa
  • openssl rsa -in id_rsa -pubout -outform PEM -out id_rsa.pub
import jwt

priv_key_path = "id_rsa"
pub_key_path = "id_rsa.pub"
encoded_jwt = ""

with open(priv_key_path) as private_key:
    encoded_jwt = jwt.encode({"some": "payload"}, private_key.read(), algorithm="RS256")
    print(encoded_jwt)

with open(pub_key_path) as public_key:
    decoded_jwt = jwt.decode(encoded_jwt, public_key.read(), algorithms=["RS256"])
    print(decoded_jwt)

最後に

簡単に使えます
その他オプションでヘッダなども付与することができます

参考サイト

0 件のコメント:

コメントを投稿