概要
過去に 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 件のコメント:
コメントを投稿