我有一个使用vue-resource建立在Flask网络服务器上的VueJS应用程序。我正在尝试使用flask会话来存储非敏感数据。
Request.vue:
this.$http.post('/additem', postData)
.then(function success(res) {
console.log('all items after add:', res.body);
});
routes.py:
APP.config.update(
SESSION_COOKIE_HTTPONLY=False,
SECRET_KEY='speakfriend'
)
@APP.route('/', methods=['GET'])
def index():
return render_template('index.html', rawsettings=config)
@APP.route('/additem', methods=['POST'])
def add_item():
entity_id = request.form.get('entity_id')
session['items'].append(entity_id)
print('items: {}'.format(session['items']))
session.modified = True
return jsonify(session['items'])
每次我点击/additem
路由时,响应Set-Cookie标头与请求标头中发送的会话密钥不同。我错过了什么?
答案 0 :(得分:0)
在我的情况下,问题是碰撞会话。 vue应用程序还会调用flask api,它会设置自己的会话。 SECRET_KEY
是不同的。因此,当网络服务器调用之间存在api调用(反之亦然)时,会话无法解密,并且返回了新的(空)数据,就像我们从未去过那样。
将secret_key
设置为相同的秘密就可以了。