Электронное печенье не работает, а только в производственной сборке

У нас есть электронное приложение, и система входа в систему нашего бэкэнда реализована с использованием файлов cookie.

Это квазар (vue.js)-электронное приложение, и все нормально в режиме разработки. Когда пользователь отправляет запрос на вход в систему, если его учетные данные верны, он возвращает cookie в заголовке "set-cookie". Он автоматически отправляется при каждом запросе с использованием axios, и при каждом новом запросе этот файл cookie обновляется, если пользователь не простаивал более 10 минут, в противном случае система выйдет из системы.

С другой стороны, если я создаю приложение, устанавливаю его, тогда весь заголовок "set-cookie" перестает работать! Я обнаружил, что у electronic есть API для обработки файлов cookie, поэтому я реализовал обработку файлов cookie с этим, но если пользователь выходит из системы и хочет снова войти в систему, он не может, пока не перезапустит приложение, даже если я очищаю куки с каждым выходом.

мои версии электрона / электронного строителя / электронного восстановления следующие

"electron": "^3.0.10",
"electron-builder": "^20.38.5",
"electron-rebuild": "^1.8.2",

когда пользователь выходит из системы:

session.defaultSession.clearStorageData([
    { storages: ["cookies", "appcache", "filesystem"] },
    () => {}
  ]);

и используя перехватчик Axios я устанавливаю куки с API сессии сессии

axiosInstance.interceptors.response.use(
    response => {
      session.defaultSession.cookies.get({}, (error, cookies) => {
        if (error) console.log(error, cookies);
        const cookie = cookies.filter(
          cookie => cookie.domain === process.env.domain
        );
        if (!cookie.length) return response;
        const scheme = cookie[0].secure ? "https" : "http";
        const url = scheme + "://" + cookie[0].domain;
        const newCookie = {
          url: url,
          name: cookie[0].name,
          value: cookie[0].value,
          domain: cookie[0].domain,
          path: cookie[0].path,
          secure: cookie[0].secure,
          httpOnly: cookie[0].httpOnly,
          expirationDate: cookie[0].expirationDate
        };
        session.defaultSession.cookies.set(newCookie, error => {
          if (error) console.error(error);
        });
      });
      return response;
    },
    ...rest of the code removed

это устанавливает cookie при первом входе в систему, но не при втором, пока не будет перезапущено все электронное приложение. Если я регистрирую процесс, кажется, что код все еще выполняется и сохраняет куки, но по следующему запросу не будет заголовка куки по какой-то причине.

0 ответов

Другие вопросы по тегам