6

我在 django 视图中解码 jwt 令牌时遇到了一个奇怪的问题。如果我尝试 jwt.decode('encoded_token', 'secret') 那么我会看到“签名验证失败”消息。为了逃避这个问题,我将验证标志设置为 False:

jwt.decode('eroded_token', 'secret', verify=False)

这使解码的有效负载没有错误,但我试图弄清楚如何在不将验证标志设置为 False 的情况下成功验证令牌。有任何想法吗?

谢谢

4

1 回答 1

0

这不是您要验证的实际 JWT 令牌 - 它应该看起来更像这样 - 三个字符串与句点连接在一起(当然也可以创建为实际的 JSON Web 令牌):

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTk1ODM2MjAsImV4cCI6MTU1OTU4MzY4MH0.P9bO39jqwB3YHf7XSo16OSLvcNMYbm__hrf70J9VzYw

您可以通过以下方式创建 Web 令牌:

import jwt
encoded = jwt.encode({'some': 'payload'}, 'secret', algorithm='HS256')
print(encoded)

输出/输出:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoicGF5bG9hZCJ9.4twFt5NiznN84AWoo1d7KO1T_yoc0Z6XOpOVswacPZg

`

取自https://github.com/jpadilla/pyjwt

于 2019-06-03T17:59:20.987 回答