首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ExpressJS保护静态文件服务器

使用ExpressJS保护静态文件服务器
EN

Stack Overflow用户
提问于 2014-09-05 03:02:49
回答 1查看 117关注 0票数 4

我使用express.js和passport.js实现了一个基于this tutorial的身份验证系统。

在过去,我使用了一个带有modRewrite的express服务器,看起来像这样:

代码语言:javascript
复制
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)

但是现在有了身份验证,我使用的路由如下:

代码语言:javascript
复制
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')

    }

});

我在想有一种更好的方法来完成我正在尝试做的事情,并且我想利用modRewrite和express.static服务器的优势。此外,我的服务器使用身份验证要慢得多,可能是因为它必须在每次请求文件时检查身份验证。有什么建议可以让这一切变得更快吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-06 14:06:17

我使用中间件检查用户是否已通过身份验证(无论是JWT令牌还是任何数量的其他身份验证方案)。

代码语言:javascript
复制
app.use(function (req, res, next) {
    if(isAuthenticated()) {
       next();
    } else {
       res.send(401, 'unauthorized');
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25673194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档