我使用express.js和passport.js实现了基于this tutorial的身份验证系统。
在过去,我使用了一个带有modRewrite的快速服务器,如下所示:
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。此外,我的身份验证服务器要慢得多,可能是因为每次请求文件时都必须检查身份验证。关于如何加快速度的任何提示?
答案 0 :(得分:0)
我使用中间件来检查用户是否经过身份验证(无论是在JWT令牌中还是在任何其他身份验证方案中)。
app.use(function (req, res, next) {
if(isAuthenticated()) {
next();
} else {
res.send(401, 'unauthorized');
}
});