【发布时间】:2020-09-23 18:58:08
【问题描述】:
我正在尝试将令牌附加到已登录的用户:
user_info = request.get_json()
entered_username = User.query.filter_by(username = user_info['username']).first()
if user_info['password'] == entered_username.password:
token = jwt.encode({'username':entered_username, 'exp':datetime.datetime.utcnow() + datetime.timedelta(minutes=30)},
secret_key, algorithm='HS256').decode('UTF-8')
return jsonify(token)
但我得到:TypeError: Object of type 'User' is not JSON serializable.
我也试过return jsonify(token.decode('UTF-8'))
我错过了什么?
【问题讨论】:
-
就是这么说的:您不能将
User对象编码为JSON,而entered_username是User对象。如果您只想在令牌中使用用户名,请编码{'username': user_info['username'], ...}。 -
你的意思是全部吗?我试过
{'username': user_info['username'], ...}.decode('UTF-8') but then i get AttributeError: 'dict' object has no attribute 'decode' -
是的,省略号表示代码的其余部分,而不是字面上的
...。我也不确定你为什么要在这里打电话给decode。 -
不,我指的是 {} 的其余部分或整个代码的其余部分。不是……哈哈。我得到同样的编码。
标签: python json flask jwt access-token