2016-05-23 51 views
3

我正在學習ElectronJs,所以我開始用它製作一個簡單的AngularJs應用程序,在這裏我開始磕磕絆絆。AnuglarJs的ElectronJs:如果應用程序重新啓動,Cookie不會保留值

我想存儲一些像用戶令牌和電子郵件ID等持久性數據。所以,爲了做到這一點,我正在使用$cookieStore

下面給出的示例在(firefox,chrome)瀏覽器中工作正常,但是當我在電子瀏覽器窗口中運行相同的示例時,它臨時存儲值並在重新啓動時丟失值。

請大家幫忙,非常感謝。

例子:

<!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> 

編輯 Electron Session

我也曾嘗試使用電子會議,以創建持久的cookie,但是,它也沒有工作,得到配置在應用程序重新啓動。

代碼:

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); 
    }); 

,當你運行它應顯示已設置的Cookie數據,但沒有運氣申請第二次使用此代碼。

+0

電子不會保留默認的會話信息:https://開頭github上。 com/electron/electron/blob/master/docs/api/session.md#class-session –

+0

@DanielBeck按照你的建議,我使用了'session',但是它對於永久性Cookie來說並不工作。請檢查問題中的編輯。 –

回答

2

Cookies是不是持久的,如果你不給他們expirationDate

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

如果你給他們expirationDate那麼餅乾將持續