Я новичок в фреймворке Slim 3. Я хочу получить параметр, такой как api_key или токен, из любого URL-адреса API, чтобы проверить правильность запрошенного api_key. (Любой запрос API с любым методом, отправленным на сервер, всегда будет иметь 2 параметра: GET api_key и токен POST.)
В Slim 2 я использую $app->request()->get('api_key'), но request() был удален в Slim 3. Как я могу получить параметры до того, как он будет включен в какой-либо маршрут?
api_key является частью тела или заголовков в вашем коде?
@ LLJ97 LLJ97 я хочу получить параметры из любого запроса uri на сервер, затем проверить параметр, если он правильный, я включу маршрут для обслуживания запроса
@DrakulaPredator это в заголовках
Итак, вы хотите проверить параметры перед выполнением запроса? Вы смотрели промежуточное ПО slims? Если нет, то это было бы хорошим местом для начала.
@LLJ97 LLJ97 спасибо за совет, я прочитаю и посмотрю, что я могу с этим сделать :D






Похоже, вы ищете промежуточное программное обеспечение приложения.
В Slim 3 это могло бы выглядеть так:
$app = new \slim\App();
$app->add(function($request, $response, $next) {
// check if the header is set
if ($request->getHeader('api_key')) {
// check key
if (key_is_valid($request->getHeader('api_key'))) { // dummy function
return $next($request, $response);
}
}
});
Это промежуточное ПО проверяет каждый запрос ключа API и выполняет запрос только в том случае, если ключ действителен.
Конечно, вы должны реализовать какую-то обработку ошибок, если ключ недействителен.
Slim внедряет все в параметры функции, чтобы вы могли ее использовать.
Да, я прочитал промежуточное программное обеспечение и сделал то же самое, теперь оно работает: D
Как выглядит ваш код? Обычно у вас есть объект запроса для каждого маршрута, и поэтому вы можете получить параметры через объект запроса.