2016-05-23 3 views
0

У меня есть самостоятельный блог Ghost. Я хочу проверить наличие пользовательского заголовка, например X-Den-Was-Here.Блог призраков - проверка заголовков запросов

То, что я хочу осуществить это условная проверка, где:

  1. Если заголовок присутствует - загрузить cotnents блога.
  2. Если заголовок нет - возврат 401 Unauthorized.

Где было бы наиболее подходящее место для проведения этой проверки внутри Ghost infra?

ответ

0

Как оказалось, решение этого (и я открыт, чтобы кто-то проверки это и показать мне, что я выбрал неправильное местоположение для него) заключается в изменении уровня кэширования для проверки заголовка входящего запроса.

Для этого вам необходимо \core\server\middleware\cache-control.js. Внутри функции cacheControlHeaders, вы можете просто добавить фрагмент кода ниже прямо перед next() вызова:

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

Это позволит эффективно бросить 401 Несанкционированное ответ на любой запрос, который не несет заголовок.

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(); 
    } 
}); 
+0

Это, конечно же, способ получить заголовок. Мой вопрос больше связан с архитектурой Ghost и где в потоке было бы целесообразно обеспечить проверку заголовка. –