【发布时间】:2023-03-20 21:19:01
【问题描述】:
尝试使用 PyJWT 库生成 JWT 令牌。
当我使用以下程序生成 JWT 令牌时 - 令牌不起作用。
但是,当我使用具有相同详细信息的网站 https://jwt.io/ 时 - 令牌有效。有什么我想念的吗。
我需要 python 正确生成令牌,以便我可以自动化一些需要此令牌的 API。
Python 程序:
import jwt
import base64
code = jwt.encode({'sub':'String','nbf':'1501594247',
'exp':'1501767047', 'iss': 'string', 'aud': 'String'},
base64.b64encode('secret'), algorithm='HS256')
print code
例子:
code = jwt.encode({'sub':'AccountNUmber.QTVR','nbf':'1501594247','exp':'1501860089', 'iss': 'client_id', 'aud': 'https://login.google.com/oauth'},
base64.b64encode('secret'), algorithm='HS256')
结果:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJjbGllbnRfaWQiLCJhdWQiOiJodHRwczovL2xvZ2luLmdvb2dsZS5jb20vb2F1dGgiLCJzdWIiOiJBY2NvdW50TlVtYmVyLlFUVlIiLCJleHAiOiIxNTAxODYwMDg5IiwibmJmIjoiMTUwMTU5NDI0NyJ9.dRUUQYJ-RmxgoExwPyrvHPzX9SsxcpX1rOWlhisxNsg P>
https://jwt.io/生成的令牌:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJjbGllbnRfaWQiLCJhdWQiOiJodHRwczovL2xvZ2luLmdvb2dsZS5jb20vb2F1dGgiLCJzdWIiOiJBY2NvdW50TlVtYmVyLlFUVlIiLCJleHAiOiIxNTAxODYwMDg5IiwibmJmIjoiMTUwMTU5NDI0NyJ9.INp-ZnnL8Uj7MIwLYmpZtGyTyZG-oqZRNW8iZ145jVs P>
https://jwt.io/ 生成的令牌在我调用端点时有效。我得到一个状态码 200(成功)。
但是,当我使用从我的程序生成的令牌时,它会给出“无效令牌” - 400(错误请求)。
【问题讨论】:
-
“不起作用”到底是什么意思?你得到什么样的错误?你能请。将生成的令牌添加到您的问题中
-
jps 感谢您抽出宝贵时间回复。添加了一个示例并回答了上面的问题“不起作用”。让我知道我是否足够清楚。如果没有将尝试解释更多。
-
我想我知道它是如何工作的。仍然让我感到困惑的是,您上面的 jwt.io 生成的令牌有效。如果我的回答对你有用,请告诉我。