Firebase Authentication: 'HTTPResponse' object has no attribute 'strict', status: error
我有点困惑,为什么这段代码突然失败,而它在一个星期里一直运行得很好。
import firebase_admin
from firebase_admin import firestore, credentials,db, auth
def userIsLoggedIn(self,id_token: str) -> bool:
try:
decoded_token = auth.verify_id_token(id_token)
self.uid = decoded_token['uid']
except Exception as e:
return False,str(e)
return True,""
返回的错误信息是:'HTTPResponse' object has no attribute 'strict',而且我只能在我的云服务器上测试时复制这个错误,而不是在localhost上。
我查看了堆栈跟踪,我发现是auth.verify_id_token
函数导致的问题,具体来说就是:
ile "/usr/local/lib/python3.11/site-packages/cachecontrol/serialize.py", line 54, in dumps
2023-05-04T16:11:04.767062340Z u"strict": response.strict,
2023-05-04T16:11:04.767067540Z ^^^^^^^^^^^^^^^
2023-05-04T16:11:04.767072540Z AttributeError: 'HTTPResponse' object has no attribute 'strict'
编辑:
好的,所以下面的Patrick给我指出了一个链接,告诉我:
"这似乎是 cachecontrol 与新发布的 urllib3 2.0 不兼容。目前,你可能需要使用旧版本的 urllib3,或者与 cachecontrol 团队合作,更新其用法;
我得看看我现在是否能对此做些什么。例如,按照Patrick的建议,使用urllib3 2.0.0作为一种变通方法。
看来你是碰到了这个毛病了:
https://github.com/ionrock/cachecontrol/issues/292
到目前为止,还没有公布任何修复方法。
根据https://urllib3.readthedocs.io/en/stable/changelog.html#deprecated更新日志,使用1.26.15 "固定"对我来说是这样。[编辑:说要尝试使用urllib3 2.0.0作为解决方法,但这并不奏效。]
urllib3<2.0.0
。
- Blip 2023-05-05
我在运行poetry install
时遇到了同样的错误,可能是由于同样的根本原因。这对OP没有帮助,但为了防止其他人因为同样的原因找到这个帖子,我通过从诗歌1.1.14升级到1.3.2来解决这个问题。
我在为一个Django项目建立docker镜像时遇到了同样的问题。我只是把我安装的poetry版本从1.1.8改为1.4.2,问题就消失了。
我尝试了不同的变化,但对我有帮助的是将poetry的版本从1.1.13改为1.3.2,还将poetry.lock中的urllib3版本改为">=1.26.1, <2.0.0"。