Vue SPA не включает данные сеанса при соединении Flask-Socketio - PullRequest
0 голосов
/ 18 декабря 2018

У меня проблема с управлением сеансами с помощью приложения flask-socketio и приложения Vuejs SPA.Использование только колбы с колбой и простой html-страницы правильно управляет сессиями.Как и ожидалось, если у меня есть сокет, управляющий сеансом, данные разветвляются при соединении.И если я использую флеш-сессию, то данные сеанса доступны сокету и обычным запросам.

Однако, когда я вызываю одни и те же функции из приложения SPA Vue, я вижу другое поведение.Когда flask-socketio управляет сеансом, любые данные, добавленные в сеанс до подключения, теряются, и при подключении создается пустой сеанс.При использовании сеансов на стороне сервера данные сеанса теряются после каждого запроса.

Похоже, новый сеанс создается для каждого запроса из приложения Vuejs.

Для серверной части я использую пример колбы с сокетом для управления сеансом, его можно найти здесь колба с сокетом .Для внешнего интерфейса я создал простое приложение vue из этого шаблона vuetify webpack webpack .

Я добавил этот пост VueResource http для начальной аутентификации.Когда сообщение возвращается, я устанавливаю соединение с socketio.Печать сеанса с сервера приводит к всегда пустому сеансу.

    this.$http.post('http://0.0.0.0/session', JSON.stringify({'username': this.username, 'password': this.password, 'system': this.system}), {headers: {'Content-Type': 'application/json'}}).then(response => {
      if (response.data.loggedIn === true) {
        this.socket = io(location.protocol + '//' + document.domain)
      } 
    })

Чтобы убедиться, что это не проблема cors, я запустил google-chrome, используя: google-chrome --disable-web-security --user-data-dir="" с тем же результатом.

...