Node.js - 如何隐藏 html 页面?
Node.js - How to hide html pages?
我有 html 个页面,未登录的用户不应看到这些页面。我使用了下面的命令,我的 html 个页面变成了 public。
app.use(express.static('public'));
比如我不想让没有登录的用户看到这个页面。
http://localhost:3000/admin.html
注意:我说的不是 cookie。当你在工具栏输入html页面的地址时,如果没有登录,应该是进不了那个页面的
创建自定义 static
中间件,使用中间件您可以验证路径(本例中的文件名)。
我会尝试在示例代码中用注释来解释:
// path.join here makes it work cross platform with Windows / Linux / etc
var statics = express.static(path.join(__dirname, 'public'));
function secureStatic(pathsToSecure = []) {
return function (req, res, next) {
if (pathsToSecure.length === 0) {
return statics(req, res, next); // Do not secure, forward to static route
}
if (pathsToSecure.indexOf(req.path) > -1) {
return res.status(403).send('<h1>403 Forbidden</h1>'); // Stop request
}
return statics(req, res, next); // forward to static route
};
}
// add public files. List all "private" paths (file)
app.use(secureStatic(['admin.html'])); // instead of app.use(express.static('public'));
但是,有了这个中间件,没有人可以通过您的快递服务器请求 admin.html
文件。
我有 html 个页面,未登录的用户不应看到这些页面。我使用了下面的命令,我的 html 个页面变成了 public。
app.use(express.static('public'));
比如我不想让没有登录的用户看到这个页面。
http://localhost:3000/admin.html
注意:我说的不是 cookie。当你在工具栏输入html页面的地址时,如果没有登录,应该是进不了那个页面的
创建自定义 static
中间件,使用中间件您可以验证路径(本例中的文件名)。
我会尝试在示例代码中用注释来解释:
// path.join here makes it work cross platform with Windows / Linux / etc
var statics = express.static(path.join(__dirname, 'public'));
function secureStatic(pathsToSecure = []) {
return function (req, res, next) {
if (pathsToSecure.length === 0) {
return statics(req, res, next); // Do not secure, forward to static route
}
if (pathsToSecure.indexOf(req.path) > -1) {
return res.status(403).send('<h1>403 Forbidden</h1>'); // Stop request
}
return statics(req, res, next); // forward to static route
};
}
// add public files. List all "private" paths (file)
app.use(secureStatic(['admin.html'])); // instead of app.use(express.static('public'));
但是,有了这个中间件,没有人可以通过您的快递服务器请求 admin.html
文件。