2016-07-08 41 views
7

Sto cercando di implementare un sistema di login in un'applicazione Electron [0] che sto costruendo ma che rimane bloccato dalla parte della gestione della sessione. Fondamentalmente voglio memorizzare la sessione degli utenti in modo che sia mantenuta tra i riavvii dell'applicazione (se "Remember me" è abilitato).Cookie di sessione non funzionanti in Elettrone

Devo utilizzare un back-end esistente che funziona con l'autenticazione dei cookie e non posso modificare nulla lì.

Dalla documentazione di Electron sull'oggetto Session [1] ho rilevato che dovrei utilizzare una partizione come f.e. persist:someName per avere una memoria persistente, ma questa non viene mantenuta tra i riavvii dell'applicazione come sembra.

Il mio modo attualmente impostato il cookie è la seguente:

// main-process/login.js 

const session = require('electron').session; 

const currentSession = session.fromPartition('persist:someName').cookies; 

currentSession.set({ 
    name: 'myCookie', 
    url: 'https://www.example.com', 
    value: 'loggedin=1', 
    expirationDate: 1531036000 
}, function(error) { 
    console.log('Cookie set'); 
    if (error) { 
     console.dir(error); 
    } 
}); 

Dopo l'esecuzione di questo, vedo la Cookie set uscita, ma al riavvio l'applicazione e l'esecuzione del seguente codice:

// main.js 

const session = require('electron').session; 

const currentSession = session.fromPartition('persist:someName').cookies; 

currentSession.get({}, function(error, cookies) { 
    console.dir(cookies); 
    if (error) { 
     console.dir(error); 
    } 
}); 

L'output restituito è [].

Qualsiasi suggerimento su cosa sto facendo male o che devo fare diversamente sarebbe molto apprezzato!

[0] http://electron.atom.io
[1] http://electron.atom.io/docs/api/session/

+2

Dopo aver esaminato ulteriormente il problema, sembra che questo potrebbe essere un problema con le versioni di Electron dopo 1.2.2, come indicato in questa discussione su GitHub: https://github.com/electron/electron/issues/6388 – Revell

+0

1 .: verifica la tua importazione, immagino che "require ('electron']" potrebbe causare alcuni problemi. 2 .: Puoi verificare invece l'API localStorage. –

+0

@JensHabegger Sì, è stato un errore di battitura nello script qui, scusa Nel frattempo si è scoperto che si trattava di un problema in Electron e sto aspettando una nuova versione con la correzione affinché questo diventi disponibile – Revell

risposta

0

Un'alternativa potrebbe essere quella di dare un'occhiata a electron-json-storage. Usando questo plugin, puoi scrivere JSON su un file di sistema attraverso l'esperienza utente e quindi richiamare quel file sull'applicazione caricata per sostituire lo "stato" dell'utente.