JSON Web 令牌不再具有 'decode' 属性,尽管没有更改
JSON Web Token no longer has 'decode' attribute despite no changes
我有一个功能可以为用户提供令牌,以便他们可以使用 Twilio Video API 访问视频聊天室。按照他们的文档,我们使用以下代码解码 JSON Web Token 以获得他们的令牌:
token = AccessToken(ACCOUNT_SID, API_KEY, API_SECRET, identity=f'{request.user.email}')
token.add_grant(VideoGrant(room='My Room'))
context = {
'token': token.to_jwt().decode()
}
这在本地完美运行,并且在将其推送到实时服务器后,继续在那里正常运行。然而,推了几下,这段代码没有任何变化,突然出现了这个错误(如下)。这也与另一个错误同时出现,这是一个 ascii 编码错误,我相信这可能是有联系的。
很奇怪,虽然没有对这个token对象或者函数做任何改动,但是我们在解码这个token的时候突然遇到这个错误。如果有人有任何指点,将不胜感激。
PyJWT 将 jwt.encode
的 return 类型从 bytes
更改为 str
:https://pyjwt.readthedocs.io/en/stable/changelog.html#jwt-encode-return-type
解决方案是 downgrade/pin 将 PyJWT
包 1.7.1
或删除对 decode
的调用
context = {
'token': token.to_jwt()
}
我有一个功能可以为用户提供令牌,以便他们可以使用 Twilio Video API 访问视频聊天室。按照他们的文档,我们使用以下代码解码 JSON Web Token 以获得他们的令牌:
token = AccessToken(ACCOUNT_SID, API_KEY, API_SECRET, identity=f'{request.user.email}')
token.add_grant(VideoGrant(room='My Room'))
context = {
'token': token.to_jwt().decode()
}
这在本地完美运行,并且在将其推送到实时服务器后,继续在那里正常运行。然而,推了几下,这段代码没有任何变化,突然出现了这个错误(如下)。这也与另一个错误同时出现,这是一个 ascii 编码错误,我相信这可能是有联系的。
很奇怪,虽然没有对这个token对象或者函数做任何改动,但是我们在解码这个token的时候突然遇到这个错误。如果有人有任何指点,将不胜感激。
PyJWT 将 jwt.encode
的 return 类型从 bytes
更改为 str
:https://pyjwt.readthedocs.io/en/stable/changelog.html#jwt-encode-return-type
解决方案是 downgrade/pin 将 PyJWT
包 1.7.1
或删除对 decode
context = {
'token': token.to_jwt()
}