2016-05-23 6 views
3

Ich lerne ElectronJs, also habe ich mit der Erstellung einer einfachen AngularJs Anwendung damit begonnen und hier fing ich an zu stolpern.ElectronJs mit AnuglarJs: Cookies halten keine Werte, wenn die Anwendung neu gestartet wird

Ich möchte einige persistente Daten wie Benutzer-Token und E-Mail-ID und so weiter speichern. Also, um dies zu tun, verwende ich $cookieStore.

Das unten angegebene Beispiel funktioniert im Browser (Firefox, Chrome), aber wenn ich das gleiche Beispiel im Elektronenbrowserfenster führe, speichert es die Werte vorübergehend und verliert die Werte zum Zeitpunkt des Neustarts.

Bitte helfen, vielen Dank.

Beispiel:

<!DOCTYPE html> 
<html ng-app="myApp"> 

<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular-cookies.min.js"></script> 
    <meta charset="utf-8"> 
    <title>AngularJS Cookies Example</title> 
</head> 

<body ng-controller="MyController"> 
    {{platformCookie}} {{myFruit}} {{myFlower}} 

    <input type="button" value="setCookie" ng-click="setCookie()" /> 
    <input type="button" value="getCookie" ng-click="getCookie()" /> 

    <script> 
     var myApp = angular.module('myApp', ['ngCookies']); 

     myApp.controller('MyController', ['$scope', '$cookies', '$cookieStore', 
     function($scope, $cookies, $cookieStore) { 
      $cookies.userName = 'Vikas'; 

      $scope.setCookie = function() 
      { 
       $scope.platformCookie = $cookies.userName; 
       $cookieStore.put('fruit', 'Apple'); 
       $cookieStore.put('flower', 'Rose'); 



       console.log('set cookies'); 
      } 

      $scope.getCookie = function() 
      { 
       $scope.myFruit = $cookieStore.get('fruit'); 
       $scope.myFlower = $cookieStore.get('flower'); 

       console.log($scope.myFruit); 
      } 

     }]); 
    </script> 
</body> 

</html> 

EDIT Electron Session

ich auch um Electron Session zu verwenden, haben versucht, persistente Cookies zu schaffen, aber es ist auch nicht funktioniert und auf dem Neustart der Anwendung entsorgt zu werden .

Code:

const session = require('electron').session; 
const ses = session.fromPartition('persist:name'); 

// Query all cookies associated with a specific URL. 
    ses.cookies.get({ url: 'http://www.github.com' }, (error, cookies) => { 
     console.log(cookies); 
    }); 

    // Set a cookie with the given cookie data; 
    // may overwrite equivalent cookies if they exist. 
    const cookie = { url: 'http://www.github.com', name: 'dummy_name', value: 'dummy' }; 
    ses.cookies.set(cookie, (error) => { 
     if (error) 
      console.error(error); 
    }); 

mit diesem Code, wenn Sie die Anwendung zweites Mal ausführen soll es die Cookies Daten angezeigt werden, die festgelegt worden war, aber kein Glück.

+0

Electron anhalten wird keine Sitzung Informationen standardmäßig bestehen: https: // GitHub. com/electron/electron/blob/master/docs/api/session.md # class-session –

+0

@DanielBeck Wie Sie empfohlen haben Ich habe die "Sitzung" verwendet, aber es funktioniert nicht so gut für persistente Cookies. Überprüfen Sie die Änderung in der Frage. –

Antwort

2

Cookies sind nicht persistent, wenn Sie sie nicht expirationDate

let cookie = { 
      url: 'http://www.drutas.com', 
      name: 'userDetailsGoogle', 
      value: JSON.stringify(userDetailsGoogle), 
      expirationDate: 2093792393999 
     }; 

geben Wenn Sie ihnen geben expirationDate dann Cookies

Verwandte Themen