0

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

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

  1. 如果标题存在- 加载博客内容。
  2. 如果标头不存在- 返回401 Unauthorized

在 Ghost infra 中执行此检查的最合适位置是哪里?

4

2 回答 2

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();
  }
});
于 2016-05-24T00:10:10.157 回答
0

事实证明,对此的解决方案(我愿意让某人验证它并告诉我我为它选择了错误的位置)是修改缓存层以验证入站请求标头。

为此,您需要\core\server\middleware\cache-control.js. 在cacheControlHeaders函数中,您可以在调用之前添加以下代码段next()

if (req.headers["den-was-here"] != "1")
{
    return res.sendStatus(401);
}

这将有效地为任何不携带标头的请求抛出401 Unauthorized响应。

于 2016-05-24T00:25:25.330 回答