gpt4 book ai didi

python - jwt.encode 失败,显示 "Object of type ' 字节“不可 JSON 序列化”

转载 作者:行者123 更新时间:2023-12-01 09:29:19 26 4
gpt4 key购买 nike

我尝试在用户成功登录后将 token 返回给他们,但不断收到以下错误:

类型错误:“字节”类型的对象不可 JSON 序列化

我该如何解决这个问题?这是我到目前为止的代码:

   if user:
selected_user = {
'email': user.__dict__['email'],
'password': user.__dict__['password'],
'account_type': user.__dict__['account_type'],
'token': ''
}

if bcrypt.checkpw(request.data['password'].encode('utf8'), selected_user['password'].encode('utf8')):
payload = {
'email': selected_user.email,
'account_type': selected_user.account_type
}
selected_user['token'] = jwt.encode(payload, "SECRET_KEY")
response_details = {
'data': selected_user,
'message': 'Login successful.',
'code': '200',
'status': HTTP_200_OK
}
return Response(response_details, status=response_details['status'])
else:
response_details = {
'message': "Invalid password.",
'code': "400",
'status': HTTP_400_BAD_REQUEST
}
return Response(response_details, status=response_details['status'])
else:
response_details = {
'message': "Invalid email and password combination.",
'code': "400",
'status': HTTP_400_BAD_REQUEST
}
return Response(response_details, status=response_details['status'])

最佳答案

在 PyJWT 的旧版本中,例如 1.7,最后需要解码:

jwt.encode(payload, "SECRET_KEY", algorithm='HS256').decode('utf-8')

如果您使用最新版本(例如 2.3.1),则无需转储或解码,将会生成 UTF-8 格式的字符串

关于python - jwt.encode 失败,显示 "Object of type ' 字节“不可 JSON 序列化”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com