Hapi.js 仅限本地主机访问
Hapi.js Limit access only to localhost
我有一个使用 Hapi/React 构建的应用程序,它在 Nodewebkit 中提供。
应用程序安装在用户 PC 上,运行 本地。我遇到的问题是:
- 用户 运行 应用程序。同一网络上的其他一些 PC 可以访问该应用程序并使用它。例如,如果我 运行 我的应用程序在我的 PC 上,我的 IP 是 192.168.0.5。其他人可以在浏览器中输入该IP,它就可以使用我的应用程序。
以前我使用 Express 而不是 Hapi,并且有一个设置可以阻止它,只限制本地主机的连接。
如何在 Hapi.js 中实现相同的目标?
这是我的 Nodewebkit 启动文件:
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 () {
});
});
By default, hapi connections listen on the 0.0.0.0 interface(所有网络接口,包括您的 LAN)。你希望你的服务只在你的机器上可用,所以你应该只在环回接口上监听:
server.connection({ port: config.server.port, address: '127.0.0.1' });
或
server.connection({ port: config.server.port, address: 'localhost' });
在 server.connection([options])
文档下查看更多信息。
我有一个使用 Hapi/React 构建的应用程序,它在 Nodewebkit 中提供。
应用程序安装在用户 PC 上,运行 本地。我遇到的问题是: - 用户 运行 应用程序。同一网络上的其他一些 PC 可以访问该应用程序并使用它。例如,如果我 运行 我的应用程序在我的 PC 上,我的 IP 是 192.168.0.5。其他人可以在浏览器中输入该IP,它就可以使用我的应用程序。
以前我使用 Express 而不是 Hapi,并且有一个设置可以阻止它,只限制本地主机的连接。
如何在 Hapi.js 中实现相同的目标?
这是我的 Nodewebkit 启动文件:
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 () {
});
});
By default, hapi connections listen on the 0.0.0.0 interface(所有网络接口,包括您的 LAN)。你希望你的服务只在你的机器上可用,所以你应该只在环回接口上监听:
server.connection({ port: config.server.port, address: '127.0.0.1' });
或
server.connection({ port: config.server.port, address: 'localhost' });
在 server.connection([options])
文档下查看更多信息。