セキュアなIPC通信
nodeIntegrationはセキュリティ的によくないので、IPC通信するメソッドだけpreloadでレンダラープロセスに伝える。
code:main.js
// メインプロセス
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload: __dirname + '/preload.js',
},
});
code:preload.js
// preload.js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
send: (data) => {
ipcRenderer.send('message', data);
},
});
code:javascript
// レンダラープロセス
window.api.send('test');
参考