使用jsonify时可以设置cookie吗?

Oce*_*eas 5 python cookies session 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')
Run Code Online (Sandbox Code Playgroud)

我想在响应头中设置一个cookie,但我使用jsonify而不是创建一个Response.返回时jsonify如何添加cookie ?

dav*_*ism 14

jsonify返回一个Response对象,所以在从视图返回之前捕获它,然后添加cookie Response.set_cookie.

out = jsonify(state=0, msg='success')
out.set_cookie('my_key', 'my_value')
return out
Run Code Online (Sandbox Code Playgroud)

您可能只想将值添加到会话cookie.Flask session将对json进行编码并对cookie进行签名以确保安全性,这是您在使用时必须手动执行的操作set_cookie.

from flask import session

session['my_key'] = 'my_value'
Run Code Online (Sandbox Code Playgroud)