有没有一种很好的方法(可能使用某个库)来仅从保存为字符串变量的 JWT 中获取有效负载?除了手动解析第一个和第二个点之间的内容然后解码。
jps*_*jps 25
库PyJWT有一个选项可以在没有验证的情况下解码 JWT:
如果没有此选项,该decode函数不仅会解码令牌,还会验证签名,您必须提供匹配的密钥。这当然是推荐的方式。
但是,如果您出于某种原因只想解码有效负载,请将该选项设置verify_signature为 false。
import jwt
key='super-secret'
payload={"id":"1","email":"myemail@gmail.com" }
token = jwt.encode(payload, key)
print (token)
decoded = jwt.decode(token, options={"verify_signature": False}) # works in PyJWT >= v2.0
print (decoded)
print (decoded["email"])
Run Code Online (Sandbox Code Playgroud)
对于 PyJWT < v2.0 使用:
decoded = jwt.decode(token, verify=False) # works in PyJWT < v2.0
Run Code Online (Sandbox Code Playgroud)
它返回一个字典,以便您可以单独访问每个值:
b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjEiLCJlbWFpbCI6Im15ZW1haWxAZ21haWwuY29tIn0.ljEqGNGyR36s21NkSfxEdbLvEdb'pbWFpbCI6Im15ZW1haWxAZ21haWwuY29tIn0.
{'id':'1','email':'myemail@gmail.com'}
myemail@gmail.com
注意:还有其他适用于 python 的 JWT 库,这也可能适用于其他库。
| 归档时间: |
|
| 查看次数: |
13189 次 |
| 最近记录: |