使用jsonify时可以设置cookie吗?

时间:2014-10-27 12:21:49

标签: python session cookies flask

@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 个答案:

答案 0 :(得分:13)

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'