python - 过期的 firebase 身份验证 token 的异常处理

标签 python firebase authentication firebase-realtime-database error-handling

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

    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

使用过期 token 测试 block 时,出现以下错误:

...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

关于python - 过期的 firebase 身份验证 token 的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71487751/

相关文章:

python - 加法和乘法的联合累加

python - Django 1.9.3 - 如何将 HTML 模板传递给索引模板

python - 使用 COM 接口(interface)打印 Excel 工作表

angularjs - 如何在 Angularfire 中的数组上设置键名

firebase - 如何获得从消防站到 flutter 的时间距离

python - 使用 django-cas 和 django-mama-cas 设置单点登录

python - 如何删除子数组的末尾元素?

node.js - 如果我正在开发或生产中,如何告诉 firebase? (对于 firebase 函数沙箱/实时开关)

php - Codeigniter登录系统问题日志记录

authentication - 访问具有额外身份验证的 WiFi 互联网