过期的 firebase 身份验证令牌的异常处理

Exception handling of expired firebase auth tokens

我有一个 python flask 应用程序,它使用 pyrebase4 链接到 firebase 实时数据库。我想创建一个 try/except 块来捕获与尝试访问数据记录的未授权或过期访问令牌有关的异常。我尝试执行以下操作:

    import from urllib.error import HTTPError
    from flask import jsonify

    # Fetch task from db using access token.
    try:
        data = db.child("tasks").child(task["id"]).get(accessToken)
        return jsonify(data.val()), 200
    except HTTPError as e:
        return jsonify({"msg": f"Authorisation error:{e}"}), 400

使用过期令牌测试块时,出现以下错误:

...raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: URL

During handling of the above exception, another exception occurred:

...raise HTTPError(e, request_object.text) requests.exceptions.HTTPError: [Errno 401 Client Error: Unauthorized for url: URL] { "error" : "Auth token is expired"}

两个错误都引用了以下行:data = db.child("tasks").child(task["id"]).get(accessToken)

这里到底发生了什么,我将如何在异常中处理这个异常?

您可能从不同于 pyrebase4 包使用的库导入 'HTTPError'。检查您是否从正确的库中导入错误。例如

from requests.exceptions import HTTPError

没有

from urllib.error import HTTPError