Поддерживает ли Laravel 7 Validation проверку значения в заголовке авторизации? - PullRequest
0 голосов
/ 19 апреля 2020

Я хотел бы проверить токен, который содержится в заголовке HTTP-запроса Authorization Bearer. Я знаю, что Laravel имеет функцию проверки, которую можно использовать для проверки параметров, которые были переданы в основной части запроса.

Есть ли способ проверить значения в определенных заголовках HTTP или мне просто использовать Middleware для этого?

Спасибо

1 Ответ

0 голосов
/ 19 апреля 2020

если вы используете Laravel по умолчанию token_api в качестве защиты API, просто убедитесь, что ваша пользовательская модель наследует от Illuminate\Foundation\Auth\User

. Прочитайте код ресурса о том, как Laravel проверяет Bearer Token в vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php

public function getTokenForRequest()
{
    $token = $this->request->query($this->inputKey);

    if (empty($token)) {
        $token = $this->request->input($this->inputKey);
    }

    if (empty($token)) {
        $token = $this->request->bearerToken();
    }

    if (empty($token)) {
        $token = $this->request->getPassword();
    }

    return $token;
}

Как видите, Laravel проверит inputKey, если в запросе сначала api_token. Таким образом, вы можете добавить промежуточное ПО для проверки авторизации. Возможно, для него достаточно auth:api по умолчанию

Route::middleware('auth:api')->group(function(){
   ...
});

Но использование api_token в качестве вашего API-интерфейса небезопасно для вашего приложения, возможно, вам следует использовать Sanctum вместо него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...