VueJS和Flask会话:每个请求的新会话

时间:2017-01-31 17:24:08

标签: session flask vue.js vue-resource

我有一个使用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标头与请求标头中发送的会话密钥不同。我错过了什么?

1 个答案:

答案 0 :(得分:0)

在我的情况下,问题是碰撞会话。 vue应用程序还会调用flask api,它会设置自己的会话。 SECRET_KEY是不同的。因此,当网络服务器调用之间存在api调用(反之亦然)时,会话无法解密,并且返回了新的(空)数据,就像我们从未去过那样。

secret_key设置为相同的秘密就可以了。