当我进行授权调用Firebase时:
email = request.POST['email']
password = request.POST['password']
config = {
"apiKey": "",
"authDomain": "",
"databaseURL": "",
"storageBucket": ""
}
firebase = pyrebase.initialize_app(config)
auth = firebase.auth()
try:
user = auth.create_user_with_email_and_password(email, password)
user = auth.refresh(user['refreshToken'])
request.session['user_uuid'] = user
if user != "":
print("You're logged in.")
return redirect('')
else:
print("")
except requests.exceptions.HTTPError as e:
print(e)我收到以下答复:
"[Errno 400 Client Error: Bad Request for url:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?
key=%20AIzaSyCm0XR9oECpQOBTp_iouf3RJTD-Nq0fuXg] {
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "WEAK_PASSWORD : Password should be at least 6 characters"
}
],
"code": 400,
"message": "WEAK_PASSWORD : Password should be at least 6 characters"
}
}"我正在尝试解析来自响应的消息和代码,但是我始终得到一个可订阅的错误。我使用以下代码来解析响应:
data = e[-1]
data = (json.dumps(json.loads(data), sort_keys = True, indent = 4))
data = json.loads(data)
error = data['error']
error_message = error['message']
print(error_message)
context_dict = {
'message': error_message
}发布于 2017-05-02 19:19:10
pyrebase引发更新的 exception;重新包装原始异常。
您可以得到该异常用.args属性包装的两个值。它是一个带有原始异常的元组,request_object.text值作为第二个。它是要解析的第二个值,或,您可以使用原始异常获取响应对象,并使用.json()让请求库进行解析。
except requests.exceptions.HTTPError as e:
error_json = e.args[1]
error = json.loads(error_json)['error']或
except requests.exceptions.HTTPError as e:
response = e.args[0].response
error = response.json()['error']老实说,我不太清楚项目为什么要这样做;原始异常已经包含了它们绑定的信息;例如,使用original_exception.response.text不是重新包装异常,而是生成相同的文本值。
https://stackoverflow.com/questions/43725448
复制相似问题