幽灵博客 - 检查请求标题

时间:2016-05-23 21:52:43

标签: node.js express http-headers ghost-blog ghost

我有一个自托管的Ghost博客正在运行。我想检查是否存在自定义标头,例如X-Den-Was-Here

我想要实现的是条件检查,其中:

  1. 如果标题存在 - 请加载博客cotnents。
  2. 如果标题不存在 - 请返回401 Unauthorized
  3. 在Ghost基础上进行此检查的最佳位置在哪里?

2 个答案:

答案 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 响应。