Можете ли вы знать, откуда поступает запрос на API в Laravel? - PullRequest
0 голосов
/ 23 февраля 2019

По сути, у меня есть RESTful API в laravel, и я не хочу позволять кому-либо получать доступ к API, поэтому я создал промежуточное ПО APIKey.Обычно я бы просто проверял, равен ли ключ API в URL запроса тому, который назначен пользователю.Но поскольку я планирую создавать и разрешать другим пользователям создавать приложения php, js и т. Д. На API, я подумал, что было бы неплохо проверить, соответствует ли ключ API веб-сайту или приложению, зарегистрированному пользователем, когда он запрашивал ключ API.Как мне решить эту проблему?

Пример промежуточного программного обеспечения:

class APIKey
{ 

    public function handle($request, Closure $next)
    { 

       if ($request->apikey == '') {

            return redirect('/');

        } else { 

            $users = User::where('access_key', $request->apikey)->where('registered_app', $request->origin);

            if ($users != 1) { 
              return response("Invalid access key");
            } else { 
              return $next($request);
            }
        } 
   }
}

Простите за синтаксические ошибки.

1 Ответ

0 голосов
/ 23 февраля 2019

сначала вы должны правильно написать запрос

 $user = User::where('access_key', $request->apikey)->where('registered_app', $request->origin)->first();

это должно вернуть действительного пользователя, если нет:

    if ($users != null) { 
      return response("Invalid access key");
    } else { 
      return $next($request);
    }

это должно работать.

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