Ghost 博客 - 检查请求 Headers
Ghost Blog - Check Request Headers
我有一个 self-hosted 幽灵博客 运行。我想检查是否存在自定义 header,例如 X-Den-Was-Here
.
我要实现的是条件检查,其中:
- 如果 header 存在 - 加载博客内容。
- 如果 header 不存在 - return 一个 401 Unauthorized.
在 Ghost infra 中执行此检查的最合适位置是哪里?
根据 Express 4.x API Reference,您可以使用 req.get(headerName)
访问 headers,并检查它是否 returns undefined
或其他内容,例如:
app.get('/', function(req, res, next) {
if(req.get(headerName) == undefined){
//do not load modules
}else{
loadModules();
}
});
事实证明,这个问题的解决方案(我愿意让某人验证它并告诉我我为它选择了错误的位置)是修改缓存层以验证入站请求header.
为此,您需要 \core\server\middleware\cache-control.js
。在 cacheControlHeaders
函数中,您只需在 next()
调用之前添加下面的代码段:
if (req.headers["den-was-here"] != "1")
{
return res.sendStatus(401);
}
这将有效地为任何不携带 header.
的请求抛出 401 Unauthorized 响应
我有一个 self-hosted 幽灵博客 运行。我想检查是否存在自定义 header,例如 X-Den-Was-Here
.
我要实现的是条件检查,其中:
- 如果 header 存在 - 加载博客内容。
- 如果 header 不存在 - return 一个 401 Unauthorized.
在 Ghost infra 中执行此检查的最合适位置是哪里?
根据 Express 4.x API Reference,您可以使用 req.get(headerName)
访问 headers,并检查它是否 returns undefined
或其他内容,例如:
app.get('/', function(req, res, next) {
if(req.get(headerName) == undefined){
//do not load modules
}else{
loadModules();
}
});
事实证明,这个问题的解决方案(我愿意让某人验证它并告诉我我为它选择了错误的位置)是修改缓存层以验证入站请求header.
为此,您需要 \core\server\middleware\cache-control.js
。在 cacheControlHeaders
函数中,您只需在 next()
调用之前添加下面的代码段:
if (req.headers["den-was-here"] != "1")
{
return res.sendStatus(401);
}
这将有效地为任何不携带 header.
的请求抛出 401 Unauthorized 响应