[英]can't decode JWT token
我從谷歌 oauth API 收到 JWT 令牌。 我可以通過 jwt.io 網站使用 RS256 算法對其進行解碼。 問題是如何通過 python 對其進行解碼? 我嘗試使用 pyJWT 但沒有運氣:
import jwt
js = jwt.decode(
"JWT staff",
algorithms=["RS256"],
)
print(js)
我收到以下錯誤:
jwt.exceptions.InvalidAlgorithmError: The specified alg value is not allowed
那么,問題是什么? 以及如何解碼收到的 JWT?
有同樣的問題,發現這個https://github.com/jpadilla/pyjwt/blob/master/jwt/algorithms.py#L49 ,需要安裝密碼學(詩歌添加密碼學)
好吧,我找到了如何解碼 Google OAuth2.0 JWT id_token 的答案。 下面是我使用的代碼,它只返回解碼后的有效載荷。
import base64
import json
def parse_id_token(token: str) -> dict:
"""
Parse Google OAuth2.0 id_token payload
"""
parts = token.split(".")
if len(parts) != 3:
raise Exception("Incorrect id token format")
payload = parts[1]
padded = payload + "=" * (4 - len(payload) % 4)
decoded = base64.b64decode(padded)
return json.loads(decoded)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.