使用jsonify时可以设置cookie吗?
@user.route('/login', methods=['POST'])
def check_oauthuser():
token = request.args.get('token','')
open_u_id = request.args.get('openUId','')
_self_expires = 60 * 60 * 24 * 30 * 3
#re = Response()
#re.set_cookie('name','1111111')
if token!='' and open_u_id!='':
set_user_login_cache(user_id, token)
return jsonify(state=0,msg='success')
我想在响应头中设置一个cookie,但我使用的是jsonify
,而不是创建一个Response
。我该怎么做才能在返回jsonify
时添加一个cookie呢?
1 个回答
22
jsonify
会返回一个 Response
对象,所以在你返回视图之前,先把它保存下来,然后再用 Response.set_cookie
添加 cookie。
out = jsonify(state=0, msg='success')
out.set_cookie('my_key', 'my_value')
return out
你可能只想把值添加到会话 cookie 中。Flask 的 session
会自动把值转换成 json 格式并对 cookie 进行签名以确保安全,而使用 set_cookie
时,你需要手动完成这些步骤。
from flask import session
session['my_key'] = 'my_value'