Nodewebkit에서 제공되는 Hapi/React로 빌드 된 앱이 있습니다.Hapi.js 로컬 호스트에만 액세스 제한
응용 프로그램이 사용자 PC에 설치되고 로컬로 실행됩니다. 문제는 다음과 같습니다. - 사용자가 응용 프로그램을 실행합니다. 동일한 네트워크에있는 다른 PC는 응용 프로그램에 액세스하여이를 사용할 수 있습니다. 예를 들어 PC에서 응용 프로그램을 실행하고 IP가 192.168.0.5 인 경우를 예로들 수 있습니다. 다른 사람이 브라우저에 해당 IP를 입력하면 내 응용 프로그램을 사용할 수 있습니다.
이전에는 Hapi 대신 Express를 사용했으며,이를 방지하는 설정이 있었으므로 connecitons가 로컬 호스트에만 국한되었습니다.
Hapi.js에서 어떻게 동일한 작업을 수행 할 수 있습니까?
이 내 Nodewebkit 시작 파일입니다 : (당신의 LAN을 포함한 모든 네트워크 인터페이스)
process.env.NODE_ENV = "desktop";
var Hapi = require('hapi');
var config = require('./config');
var models = require('./models');
log4js = require('log4js');
log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'logs/project.log', category: 'projects' }
]
});
logger = log4js.getLogger('projects');
logger.setLevel('ERROR');
logger.setLevel('INFO');
var plugins = [
require('inert'),
require('blipp')
];
const server = new Hapi.Server();
var path = require('path');
global.appRoot = path.resolve(__dirname);
server.connection({port: config.server.port});
server.register(plugins, function() {
server.route({
method: 'GET',
path: '/{path*}',
config: {
auth: false,
handler: {
directory: {
path: './public',
listing: false,
index: true
}
}
}
});
});
server.route(require('./server/config/routes'));
models.sequelize.sync().then(function() {
server.start(function() {
});
});
같은 질문이 생겼습니다. 시간 만에 훌륭한 대답. 그래서 여러 개의 Hapi 서버를 생성하기 위해서만 여러 개의 ips를 지정할 방법이없는 것 같습니다. 그렇지 않습니까? – estus
이것은 네트워크 인터페이스 수준이므로 특정 IP에 대한 액세스를 제한하려면 해당 서브넷이 연결된 인터페이스에서만 수신 대기하는 것이 좋습니다. 또는 ... 네트워크 관리자가 아닌 경우 응용 프로그램 수준에서 차단할 수 있습니다. –
자, 잘 됐네, 고마워. – estus