Сеансы VueJS и Flask: новый сеанс при каждом запросе

У меня есть приложение VueJS, использующее vue-ресурс, созданный на веб-сервере 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 представляет собой ключ сеанса, отличный от того, который был отправлен в заголовке запроса. Что мне не хватает?


person ebbishop    schedule 31.01.2017    source источник


Ответы (1)


В моем случае проблема заключалась в конфликте сеансов. Приложение vue также обращается к API-интерфейсу flask, который устанавливает свой собственный сеанс. SECRET_KEYs были разными. Итак, когда между вызовами веб-сервера был вызов api (или наоборот), сеанс не мог быть расшифрован, и были возвращены новые (пустые) данные, как будто мы никогда там не были.

Настройка secret_key на тот же секрет сработала.

person ebbishop    schedule 01.02.2017