繁体   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