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