JWTValidationException - utf-8' 编解码器无法解码字节

JWTValidationException - utf-8’ codec can’t decode bytes

当 access_token 传递给“verify_access_token”时,我在 python 上收到以下错误。有谁知道如何解决这个错误?我用了“okta-jwt-verifier 0.2.3”

从 okta_jwt_verifier 导入 JWTVerifier

def authenticate(self, request):
    access_token = request.META.get('HTTP_AUTHORIZATION')
    loop = asyncio.new_event_loop()
    jwt_verifier = JWTVerifier(issuer='https://devtest.okta.com/oauth2/default', 
    client_id='12345', audience='api://default')
    loop.run_until_complete(jwt_verifier.verify_access_token(access_token))

错误

JWTValidationException 无效的 header 字符串:‘utf-8’ 编解码器无法解码位置 1-2 中的字节:无效的连续字节

请求方法:GET 请求URL:http://127.0.0.1:8000/getdata/ Django 版本:2.2.10 异常类型:JWTValidationException 异常值:无效 header 字符串:'utf-8' codec can' t decode bytes in position 1-2: invalid continuation byte Exception Location: C:\WEB\project\pyenv\lib\site-packages\okta_jwt_verifier\jwt_verifier.py in verify_access_token, line 101

我按照以下方式与 OKTA 开发团队分享了这个问题后发现了问题:

如果access_token对象有“Bearer”字样需要删除。这可以通过行下方的字符串替换来完成。

access_token = request.META.get('HTTP_AUTHORIZATION', '').replace('Bearer', '').strip()