簡體   English   中英

無法解碼 JWT 令牌

[英]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.

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