我有一个自托管的Ghost博客正在运行。我想检查是否存在自定义标头,例如X-Den-Was-Here
。
我想要实现的是条件检查,其中:
在Ghost基础上进行此检查的最佳位置在哪里?
答案 0 :(得分:0)
根据Express 4.x API Reference,您可以使用req.get(headerName)
访问标头,并检查它是否返回undefined
或其他内容,例如:
app.get('/', function(req, res, next) {
if(req.get(headerName) == undefined){
//do not load modules
}else{
loadModules();
}
});
答案 1 :(得分:0)
事实证明,对此的解决方案(我愿意让某人验证并向我显示我选择了错误的位置)是修改缓存层以验证入站请求标头。
为此,您需要\core\server\middleware\cache-control.js
。在cacheControlHeaders
功能中,您只需在next()
来电之前添加以下代码段:
if (req.headers["den-was-here"] != "1")
{
return res.sendStatus(401);
}
对于任何不带标头的请求,这将有效地抛出 401 Unauthorized 响应。