Comment utiliser les cookies dans une application React Electron?
J'essaye d'utiliser des cookies dans mon application Electron React.
Pour le moment, je suis complètement incapable de le faire fonctionner.
Exiger l'électron ou l'importer dans un composant de réaction jette "TypeError: fs.existsSync is not a function".
Exemple de code qui casse ( App.jspar exemple):
import { WebContent } from 'electron';
ou alors
const { session } = require('electron');
Ce que je suis arrivé au travail était le code suivant dans le Main.jsfichier:
const { app, BrowserWindow, session } = require('electron');
session.defaultSession.cookies.get({}).then(cookies => {
console.log(cookies)
});
J'ai suivi ce tutoriel Utiliser Electron avec React: les bases pour configurer mon application de réaction d'électrons.
J'ai également suivi cette réponse à une question similaire, mais quand je fais ceci:
const { session } = window.require('electron');
console.log(session.defaultSession.cookies);
Il dit que la session n'est pas définie.
Réponses
Je suppose que vous souhaitez utiliser des cookies dans le processus de rendu (les fichiers js utilisés pour le rendu de l'interface utilisateur). Étant donné que les cookies ne sont normalement accessibles dans le processus principal et l' accès « à distance » est désactivée par défaut depuis la version 10 d'électrons, ce doit être à nouveau allumé par la mise enableRemoteModule: trueen main.js(processus principal) dans la création de la fenêtre du navigateur. Pour moi, ça ressemble à ça
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
}
});
(Aussi, nodeIntegration: trueest nécessaire dans mon cas mais peut-être pas dans votre cas pour éviter que les erreurs ne processsoient indéfinies.)
En définissant cela, vous pouvez accéder à l'objet de session simplement en faisant
import electron from 'electron';
const {remote} = electron;
const {session} = remote;
console.log(session.defaultSession.cookies);
dans votre code de rendu. En outre, vous pouvez accéder à tous les autres objets généralement accessibles uniquement dans le processus principal via electron.remote. Acclamations.