您知道在Laravel中来自哪里的API请求吗?

时间:2019-02-22 21:11:12

标签: php ajax laravel rest api

基本上,我在laravel中有一个RESTful API,并且我不想让任何人访问该API,所以我创建了一个APIKey中间件。通常,我只是检查请求URL中的API密钥是否等于分配给用户的密钥。但是,由于我计划在API上构建并允许其他人构建php,js等应用程序,因此我认为检查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 :(得分:0)

首先,您应该正确编写查询

 $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);
    }

这应该有效。