Как получить параметры из любого Uri в Slim 3 Framework?

Я новичок в фреймворке Slim 3. Я хочу получить параметр, такой как api_key или токен, из любого URL-адреса API, чтобы проверить правильность запрошенного api_key. (Любой запрос API с любым методом, отправленным на сервер, всегда будет иметь 2 параметра: GET api_key и токен POST.)

В Slim 2 я использую $app->request()->get('api_key'), но request() был удален в Slim 3. Как я могу получить параметры до того, как он будет включен в какой-либо маршрут?

Как выглядит ваш код? Обычно у вас есть объект запроса для каждого маршрута, и поэтому вы можете получить параметры через объект запроса.

LLJ97 13.06.2019 12:03
api_key является частью тела или заголовков в вашем коде?
Rahul 13.06.2019 12:04

@ LLJ97 LLJ97 я хочу получить параметры из любого запроса uri на сервер, затем проверить параметр, если он правильный, я включу маршрут для обслуживания запроса

Steven Dang 13.06.2019 12:06

@DrakulaPredator это в заголовках

Steven Dang 13.06.2019 12:06

Итак, вы хотите проверить параметры перед выполнением запроса? Вы смотрели промежуточное ПО slims? Если нет, то это было бы хорошим местом для начала.

LLJ97 13.06.2019 12:08

@LLJ97 LLJ97 спасибо за совет, я прочитаю и посмотрю, что я могу с этим сделать :D

Steven Dang 13.06.2019 12:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
268
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы ищете промежуточное программное обеспечение приложения.

В 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

Steven Dang 13.06.2019 12:31

Другие вопросы по теме