使用ExpressJS保护静态文件服务器
Securing Static File Server with ExpressJS
我已经使用express.js和passport.js在本教程的基础上实现了一个身份验证系统。
在过去,我使用过一个带有modRewrite的express服务器,它看起来像这样:
var express = require('express');
var modRewrite = require('connect-modrewrite');
var app = express();
var baseURL = './dev/';
var portnum = 3000;
app.use(modRewrite([
'^[^''.]*$ /index.html [L]'
]))
.use(express.static(baseURL))
app.listen(process.env.PORT || portnum)
但现在有了身份验证,我正在使用这样的路线:
var baseURL = './dev/';
router.get('*', isAuthenticated, function(req, res, next){
// if path contains file extension
// behave as static file server
if (req.path.indexOf('.') !== -1) {
var fullPath = baseURL + req.path;
res.sendfile(fullPath)
// else send index.html
} else {
res.sendfile(baseURL + '/index.html')
}
});
我想有一种更好的方法来做我想做的事情,我想利用express.static服务器和modRewrite。此外,我的服务器进行身份验证的速度要慢得多,可能是因为每次请求文件时都必须检查身份验证。关于如何加快速度,有什么建议吗?
我使用中间件来检查用户是否经过身份验证(无论是JWT令牌还是任何其他身份验证方案)。
app.use(function (req, res, next) {
if(isAuthenticated()) {
next();
} else {
res.send(401, 'unauthorized');
}
});
相关文章:
- 在浏览器中打开文本文件-服务器上出现错误
- 如何从 Node.js 访问、检索、存储和删除文件到远程文件服务器中
- 从文件服务器读取 XML 文件
- 如何从文件服务器下载文件
- 如何使用JQUERY使用AJAX将Javascript变量(从客户端)发布到PHP文件(服务器端)
- 学习node文件服务器为什么将createReadStream()放入createServer()中
- NodeJs中的静态HTTP文件服务器:有时外部.js和.css文件加载正常,有时加载不正常;t
- 如何在Rails应用程序中包含带有自定义css和js文件的静态页面
- 如何将json文件用于静态服务器
- 使用ExpressJS保护静态文件服务器
- 如何将json对象保存为文件服务器端
- 学习younode教程#11 HTTP文件服务器
- 仅由文件服务器支持的浏览器应用程序中的数据
- http.文件服务器响应的mime "Content-Type"错误
- Express服务器静态文件夹不提供文件
- 使用另一个文件覆盖静态成员
- 从cshtml文件调用静态方法
- 我可以创建一个javascript carousel,其中包含一个flash文件以及静态图像
- 在dropzone.js中分配文件服务器id
- 通过JavaScript上传文件:服务器上的文件无效