python - lambda 函数中的 python 和 python-jose 错误

标签 python aws-lambda python-jose

我对 python 有点陌生,之前从未使用过它来验证 jwt token 。

我正在编写一个 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']

...

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

有人可以帮忙吗?谢谢。

最佳答案

出现错误是因为您的 token 结构无效。 token 应采用 abc.abc.abc 的形式。 header 、有效负载和签名由 3 个点分隔。

关于python - lambda 函数中的 python 和 python-jose 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420643/

相关文章:

python - 访问字典,用字典中的信息替换用户输入中的项目

python - 内核一次又一次死掉

python3 vlc模块 - 没有音频

python - python的time.sleep()有多准确?

python - 如何在 AWS Lambda 中最好地使用 Python 3 的 mimetypes 模块?

Python Boto3 'StreamingBody' 对象没有属性 'iter_lines'

java - Amazon Lambda 上 Amazon Echo/Alexa 的正确 Java handleRequest() 方法签名?

python - JWT 在 python 中加密有效负载? (JWE)

python - 如何在 Python 中解码 Firebase JWT token