[英]Nodejs, nginx, express - Checking if user is authenticated before serving static files doesn't work
使用nginx运行时,app.get似乎没有受到攻击。 但是,它在本地运行,没有nginx。 受影响的代码如下:
app.get('/', function(req, res, next){
if (!req.isAuthenticated()){
return res.redirect('/login');
} else {
app.use('/', express.static(path.join(__dirname, 'dist-restricted')));
return next();
}
});
该代码在向用户发送受限制的静态文件之前,会检查用户是否已使用护照进行了身份验证。 运行nginx时,不会重定向用户登录。
Nginx是否与此有关? 以及我该如何解决。
您的nginx可能在不通过节点的情况下提供静态文件。
例如,使用这样的配置,nginx将直接读取文件,而无需使用node:
location ~^\/(js|css|fonts|images|img|plugins|upload|pdf) {
expires 1M;
access_log off;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET;
add_header Access-Control-Allow-Headers X-Requested-With,content-type;
add_header Access-Control-Allow-Credentials true;
root /mypatht/public;
}
如果nginx直接读取您的文件夹,则不编辑nginx配置就无法做任何事情。
要确保将console.log放入app.get内,如果未出现,则必须编辑nginx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.