Использование токена приложения с API Laravel для дополнительной безопасности

Я создал RESTful API с Laravel, и он отлично работает.

Существует аутентификация, когда пользователь хочет создать или обновить свои записи.

Однако я хочу добавить один дополнительный уровень безопасности с помощью токена приложения.

Я поместил этот токен в файл .env и хочу проверить, есть ли в запросе app_token="uniquestring", чтобы мой API мог что-то сделать.

По сути, мне все равно, есть ли у пользователя правильный api_token, если в запросе нет application_token, я хочу, чтобы он возвращал false.

У меня есть несколько контроллеров, и я уверен, что смогу жестко закодировать это, но есть ли хороший способ сделать это в маршрутах, создав группу и установив конкретное правило, говорящее, что если app_token != {my app token}, то вернуть Request denied или что-то в этом роде?

Любые советы приветствуются. Заранее спасибо!


person Meers E. Chahine    schedule 04.03.2017    source источник


Ответы (1)


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

public function handle($request, Closure $next)
{
    if ( $request->header('app_token') && $request->header('app_token') == 'uniquestring') {
        return $next($request);
    }
    return response('Unauthorized.', 401);
}

добавьте его в качестве промежуточного программного обеспечения в свои маршруты, предполагая, что ваше промежуточное программное обеспечение является псевдонимом «apptoken» в kernel.php

Route::group(['middleware' => ['auth:api', 'apptoken']], function(){
    ... 
});
person EddyTheDove    schedule 04.03.2017