Я новичок в экспрессе, поэтому я сделал это небольшое демонстрационное приложение, чтобы проверить его:
const {app, BrowserWindow} = require('electron');
const express = require('express');
const ex_app = express();
// express
// ----------------------------------------
const ex_port = 5000;
ex_app.set('view engine', 'ejs');
ex_app.set('views', __dirname + '/app/views');
ex_app.get('/', (req, res) => {
res.render('pages/index', {title: 'Root', message: 'root page loaded'});
});
ex_app.listen(ex_port, () => {
console.log(`App listening on port ${ex_port}!`);
});
// ----------------------------------------
// electron
// ----------------------------------------
app.once('ready', () => {
mainWindow = new BrowserWindow({
width: 500,
height: 400,
titleBarStyle: 'hiddenInset',
backgroundColor: "#fff",
show: false
});
mainWindow.loadURL('http://localhost:5000/');
mainWindow.once('ready-to-show', () => {
mainWindow.show();
mainWindow.focus();
mainWindow.maximize();
});
});
// ----------------------------------------
Но я заметил, что экспресс-приложение также доступно в браузере, введя http://localhost:5000
, поэтомуя хотел знать, можно ли автоматически отключить доступ любого пользователя к электронному окну?
У меня была идея передать токен uniq в электронное окно, аналогично этому:
let token = Math.random().toString(36).substr(2);
mainWindow.loadURL(`http://localhost:5000/?token=${token}`);
а затем просто отправьте его со всеми запросами и каждый раз меняйте его, но это кажется хлопотным, и можно подумать, что должно быть лучшее решение, чтобы обрабатывать это автоматически ..