2017-09-11 274 views
0

我使用guzzle将数据发送到我的API,我收到一个异常。 这里是我的控制器代码laravel guzzle 403禁止

public function Connecter(Request $request){ 
    $parametre =$request->all(); 
    $client = new Client(); 

    $r = $client->post('http://myapiurl.com/login',['body'=>$parametre]); 



    $user = json_decode($r->getBody(),true); 

    if ($user) { 
     $sis = $user['user']; 
     Session::put('id', $sis['id']); 
     Session::put('nom', $sis['name']); 
     Session::put('role', $sis['id_roles']); 
     Session::put('email', $sis['email']); 
     return redirect()->route('home'); 
    }else{ 
     return redirect()->back(); 
    } 

} 

,当我看到日志,我发现这

[2017-09-11 16:31:25] production.ERROR: GuzzleHttp\Exception\ClientException: Client error response [url] http://myapiurl.com/login [status code] 403 [reason phrase] Forbidden in /home/vol2_6/myserver.com/username/htdocs/laravel/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89 Stack trace:

当我这样做

dd($r = $client->post('http://myapiurl.com/login',['body'=>$parametre]); 
); 

我得到403禁止

+0

您是否拥有该路线上的auth中间件,并尝试在没有登录用户的情况下访问它? – Anders

+0

我有一个个人脚本来返回用户信息。它可以在本地运行。但不在远程服务器上 –

+0

它看起来像'csrf-token'字段有问题。 – aleksejjj

回答

0

如果您的API域使用CloudFlare,请尝试将“安全级别”设置更改为低或更低。你可以在防火墙设置部分找到它。

但是请注意,这会使您的网站暴露于潜在的安全漏洞。

+0

不,不用它 –

+0

我找到了云贿赂,但它被禁用。所以我认为这不是问题,但我试图访问邮递员的api子域,我有错误“该站点要求使用Javascript才能工作,请在您的浏览器中启用Javascript,或者使用带有Javascript支持的浏览器。 –