Flask_restx@api.route返回语句导致类型错误
我有一个无法解决的问题。我想在flask中使用http cookies。这是文档中的代码:Flask_restx@api.route返回语句导致类型错误,flask,flask-restplus,jsonify,Flask,Flask Restplus,Jsonify,我有一个无法解决的问题。我想在flask中使用http cookies。这是文档中的代码: @app.route('/token/auth', methods=['POST']) def login(): username = request.json.get('username', None) password = request.json.get('password', None) if username != 'test' or password != 'test'
@app.route('/token/auth', methods=['POST'])
def login():
username = request.json.get('username', None)
password = request.json.get('password', None)
if username != 'test' or password != 'test':
return jsonify({'login': False}), 401
# Create the tokens we will be sending back to the user
access_token = create_access_token(identity=username)
refresh_token = create_refresh_token(identity=username)
# Set the JWT cookies in the response
resp = jsonify({'login': True})
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp, 200
我使用flask\u restx
自动将响应转换为JSON,因此第一个示例中不需要jsonify
。但是,仍然需要对它进行jsonifid,因为我不能在字典上使用set\u access\u cookie
。这最终会导致一个嵌套响应,如下面的jsonify(jsonify(x))
这是错误:TypeError:Response类型的对象不可JSON序列化
有什么办法可以克服这个问题吗?可以这样解决:
data = dict(login=True)
resp = make_response(jsonify(**data), 200)
access_token = create_access_token(identity=user)
refresh_token = create_refresh_token(user)
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp
您能否显示
user.format()
的结果?已解决,但非常感谢您查看:-)
data = dict(login=True)
resp = make_response(jsonify(**data), 200)
access_token = create_access_token(identity=user)
refresh_token = create_refresh_token(user)
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp