【发布时间】:2020-10-30 11:43:24
【问题描述】:
我有一个 JWT 如下:
Authorization: Bearer eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCIsImtpZCI6IjQ0ODIzZjNkLTBiMDEtNGE2Yy1hODBlLWI5ZDNlOGE3MjI2ZiIsImprdSI6Imh0dHBzOi8vc2FuZGJveC5jZHMtaG9va3Mub3JnLy53ZWxsLWtub3duL2p3a3MuanNvbiJ9.eyJpc3MiOiJodHRwczovL3NhbmRib3guY2RzLWhvb2tzLm9yZyIsImF1ZCI6Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jZHMtc2VydmljZXMiLCJleHAiOjE1OTQyMzA5MDAsImlhdCI6MTU5NDIzMDYwMCwianRpIjoiZWZiMzc3M2QtM2EyOC00M2UyLTlmYmMtYjkzNmE5YWUzODhiIn0.Cbey3n5NkDRoCLHZ2WMFc1z_RY8Rlq5oGxdAYfbrBPMiJXLCwjbYoU0av2CQj-Olhbnpe7Vs8vzJ5oHP5gc2-0ooc5J49t4Uz9iYKpiM9KLUrqaJe0umc_klM2-ynHAI
我一直在苦苦挣扎,因为像 PyJWT 这样的 python 库需要一个 PEM 格式的公钥用于椭圆曲线算法,我不得不解码 base64 以获得具有“jku”(https://sandbox.cds-hooks.org/.well-known/jwks.json) 的标题,它只有有 x 和 y 坐标,而不是公钥。
我觉得我完全走错了方向,因为我认为应该是使用 ES384 算法验证 JWT 的简单且自动化的过程。
如果有人可以帮助解释如何使用库/python 代码验证这一点,那将是一个救命稻草!
【问题讨论】:
标签: python cryptography jwt ecdsa jwk