簡體   English   中英

使用ExpressJS保護靜態文件服務器

[英]Securing Static File Server with ExpressJS

我使用express.js和passport.js實現了基於本教程的認證系統。

在過去,我使用了一個帶有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。 此外,我的身份驗證服務器要慢得多,可能是因為每次請求文件時都必須檢查身份驗證。 關於如何加快速度的任何提示?

我使用中間件來檢查用戶是否經過身份驗證(無論是在JWT令牌中還是在任何其他身份驗證方案中)。

app.use(function (req, res, next) {
    if(isAuthenticated()) {
       next();
    } else {
       res.send(401, 'unauthorized');
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM