过期的 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
我有一个 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