首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示错误的PyJWT解码“不允许指定的alg值”用于'RS512‘,即使它在支持的算法中列出

显示错误的PyJWT解码“不允许指定的alg值”用于'RS512‘,即使它在支持的算法中列出
EN

Stack Overflow用户
提问于 2022-10-17 22:50:10
回答 1查看 53关注 0票数 1

我这样调用解码功能:

代码语言:javascript
运行
复制
payload = jwt.decode(token,
                     cert['key'],
                     algorithms=['RS512'],
                     audience=aud,
                     leeway=0,
               
                     )

我所犯的错误:

代码语言:javascript
运行
复制
File "/usr/local/lib/python3.9/site-packages/jwt/api_jws.py", line 292, in _verify_signature
raise InvalidAlgorithmError("The specified alg value is not allowed")

jwt.exceptions.InvalidAlgorithmError: The specified alg value is not allowed

crypto附加是通过poetrypyproject.toml中安装的

代码语言:javascript
运行
复制
 PyJWT =  {version = "^2.5.0", extras = ["crypto"]}
 cryptography = "^38.0.2"

支持的算法列表列出了算法"RS512":

代码语言:javascript
运行
复制
get_default_algorithms().keys()

给予

代码语言:javascript
运行
复制
(['none', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'ES256', 'ES256K', 'ES384', 'ES521', 'ES512', 'PS256', 'PS384', 'PS512', 'EdDSA']

以前有这个问题的人吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-17 23:13:55

由于错误可能有不同的原因,我建议检查错误行消息_verify_signature,其中指出签名不能按照文档和此帖子中的指示进行验证。

代码语言:javascript
运行
复制
>>> jwt.decode(encoded, options={"verify_signature": False})
{'some': 'payload'}

..。

代码语言:javascript
运行
复制
>>> jwt.get_unverified_header(encoded)
{'alg': 'RS512'}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74104022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档