Как сохранить куки в node-webkit

Я хочу создать приложение с помощью node-webkit, которое выполняет простую работу по открытию удаленного веб-сайта. заявление. Веб-приложение имеет некоторую аутентификацию на основе файлов cookie. Учитывая, что пользователь успешно вошел в систему, как можно сохранить необходимые файлы cookie, чтобы при следующем запуске приложения пользователь прошел аутентификацию?


person Dimitris Zorbas    schedule 04.05.2015    source источник
comment
Тоже застрял в той же проблеме!   -  person Mitermayer Reis    schedule 09.12.2015


Ответы (2)


По состоянию на 2018 год NW.js по умолчанию сохраняет файлы cookie и другие постоянные данные браузера. Они хранятся в %LOCALAPPDATA%/name-in-manifest/ в Windows или в эквиваленте в зависимости от ОС. От самого приложения ничего не требуется, вам не нужно сохранять данные cookie вручную в локальном хранилище.

person Mahn    schedule 20.04.2018
comment
Я столкнулся с той же проблемой, когда сеанс не сохраняется с последней версией NWJS 0.52.0, я также предоставляю следующий параметр --user-data-dir='/Users/sunil/sunil/temp/userdatadir/profile1' в chromium-args. Любая идея, почему он не сохраняет сеанс или в чем может быть проблема? Так же создал вопрос. Буду признателен, если вы дадите свое руководство - stackoverflow.com/q/68427188/819866 - person Sunil Kumar; 18.07.2021

  1. Вы можете получить файлы cookie авторизации, используя следующие инструкции: https://github.com/nwjs/nw.js/wiki/window#windowcookies

  2. Сохраните его предпочтительным способом: https://github.com/nwjs/nw.js/wiki/Save-persistent-data-in-app

  3. При следующем запуске просто проверьте, существует ли запись, и установите файлы cookie с помощью метода из 1.

Должно быть что-то вроде этого:

var gui = require('nw.gui');
var win = gui.Window.get();

function login() {
   var opts = {};
   if(localStorage.auth) {
      opts.cookies: [
           'Auth': localStorage.auth
      ];
   }

    someRequest.get(opts, function(result) {
        if(result)
          localStorage.auth = win.cookies.get('auth');
    });
}
person Nazar Sakharenko    schedule 11.12.2015