禁用从浏览器访问Laravel API

时间:2018-09-20 08:54:10

标签: laravel laravel-5.5

如何限制GET路由上的直接访问?

示例localhost / api / helloworld

如果我向邮递员发送请求,我想得到答复,但是如果我尝试在浏览器中打开URL,我需要重定向到主页还是出现403错误?

我应该使用一些标头来限制它吗,还是在Laravel中有另一种方法呢?

2 个答案:

答案 0 :(得分:1)

执行此操作的标准方法是使用令牌。 Laravel为您提供API身份验证,请点击此链接API Authentication (Passport)

答案 1 :(得分:0)

使用以下代码从标头中检测发出请求的客户端。

public function isBrowserRequest()
{
  $browsers = ['Opera', 'Mozilla', 'Firefox', 'Chrome', 'Edge'];

  $userAgent = request()->header('User-Agent');

  $isBrowser = false;

  foreach($browsers as $browser){
    if(strpos($userAgent, $browser) !==  false){
      $isBrowser = true;
      break;
    }
  }

  return ['result' => $isBrowser];
}