1

我对 python 有点陌生,以前从未使用它来验证 jwt 令牌。

我正在写一个 lambda 函数。我确定问题很简单,但似乎无法解决。

我不断收到此错误:

{
  "errorType": "JWTError",
  "errorMessage": "Error decoding token headers.",
  "stackTrace": [
    "  File \"/var/task/index.py\", line 43, in handler\n    claims = token_verifier(keys, token)\n",
    "  File \"/var/task/index.py\", line 74, in token_verifier\n    headers = jwt.get_unverified_headers(token)\n",
    "  File \"/var/task/jose/jwt.py\", line 193, in get_unverified_headers\n    return get_unverified_header(token)\n",
    "  File \"/var/task/jose/jwt.py\", line 173, in get_unverified_header\n    raise JWTError('Error decoding token headers.')\n"
  ]
}

我正在我的 Mac 上为 3.7 创建一个虚拟环境,并且有一个非常简单的 requirements.txt 文件:

python-jose
configparser
ecdsa
future
pyasn1
rsa
six
urllib3

我的代码在第一行爆炸了:

    headers = jwt.get_unverified_headers(token)
    kid = headers['kid']

...

实际令牌值是什么并不重要,这显然是我使用库的方式的问题。应该是有些不兼容吧。我用谷歌搜索过,没有看到其他人有这个问题,所以这一定是我正在做的事情非常愚蠢:)

有人可以帮忙吗?谢谢。

4

1 回答 1

1

错误即将到来,因为您的令牌结构无效。令牌应该是 this 的形式abc.abc.abc。Header、Payload 和 Signature 由 3 个点分隔。

于 2019-03-18T09:24:16.330 回答