2014-10-27 2 views
4
@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. Что я могу сделать, чтобы добавить файл cookie при возврате jsonify?Можно ли установить cookie при использовании jsonify?

ответ

8

jsonify возвращает объект Response, поэтому захватите его перед возвратом с вашего вида и добавьте файл cookie, а затем с Response.set_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' 
Смежные вопросы