簡體   English   中英

如何在python中編碼JWT

[英]How to encode a JWT in python

為了在 python 中創建 JWT,我編寫了以下代碼。

#Header
header = str({"alg": "RS256"})
header_binary = header.encode()
header_base64 = base64.urlsafe_b64encode(header_binary)
print(header_base64)

#Claims set (Pay Load)
client_id="" 
username="" 
URL=""
exp_time=str(round(time.time())+300) 
claims = str({"iss": client_id,
      "sub": username,
      "aud": URL,
      "exp": exp_time})
claims_binary = claims.encode()
claims_base64 = base64.urlsafe_b64encode(claims_binary)
print(claims_base64)

我知道還有更多工作要做,但我有以下問題。 如果我用“.”連接上面創建的兩個字符串。 並將結果字符串放入 JWT 調試器中,看起來聲明集工作得很好,但對於標頭卻不能這樣說。

請告知這是否是執行此操作的正確方法以及我的錯誤是什么。

Python 已經為此創建了一個很好的模塊,稱為PyJWT 嘗試使用它而不是遵循如此漫長的過程。

此外,它還允許您使用多種算法將數據編碼為其他多種功能。

可以使用第三方庫嗎? 如果是這樣,請查看文檔

例子:

import jwt

... # Define your payload variables

# Encode JWT
encoded_jwt = jwt.encode({"iss": client_id,
      "sub": username,
      "aud": URL,
      "exp": exp_time},
      'secret', algorithm='HS256')

# Decode JWT
decoded_jwt = jwt.decode(encoded_jwt, 'secret', algorithms=['HS256'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM