Express.js 4 - 在静态文件之前使用中间件进行身份验证

2024-01-05

In my express我已经设置了要从应用程序提供的静态文件/public包含此行的目录:

app.use(express.static(__dirname + '/public'));

现在,我需要在提供静态内容之前添加一个用于身份验证的中间件,并且如果用户未经过身份验证,则将被重定向到身份验证路由(例如,/login).
我不太确定我该怎么做。有任何想法吗?


由于您没有指定它,我将假设您已经拥有某种身份验证系统。

在 Express 中,代码中中间件的顺序很重要:如果您希望中间件 1 在中间件 2 之前执行,则应将它们相应地放置在代码中。自从express.static is中间件,如果您想在提供静态文件之前进行身份验证,您可以简单地在调用之前编写身份验证中间件express.static

app.use(function (req, res, next) {
    if (!userAuthenticated(req)) {
        return res.redirect('/login');
    }
    next();    
});

app.use(express.static(__dirname + '/public'));

我假设你有一个userAuthenticated函数,例如检查 HTTP 请求是否包含有效的访问令牌。

阅读有关中间件的更多信息。 http://expressjs.com/en/guide/using-middleware.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Express.js 4 - 在静态文件之前使用中间件进行身份验证 的相关文章

随机推荐