【问题标题】:Jwt Decode using PyJWT raises Signature verification failed使用 PyJWT 的 Jwt 解码引发签名验证失败
【发布时间】:2018-03-19 11:09:53
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: python django authentication jwt pyjwt


    【解决方案1】:

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

    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTk1ODM2MjAsImV4cCI6MTU1OTU4MzY4MH0.P9bO39jqwB3YHf7XSo16OSLvcNMYbm__hrf70J9VzYw
    

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

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

    O/P:

    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoicGF5bG9hZCJ9.4twFt5NiznN84AWoo1d7KO1T_yoc0Z6XOpOVswacPZg
    

    `

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

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 2019-05-20
      • 2016-12-16
      • 2016-06-12
      • 2018-04-30
      • 2018-10-02
      • 2021-04-11
      • 2016-12-27
      • 2019-06-14
      相关资源
      最近更新 更多