如何在发送Guzzle POST请求时处理laravel csrf?

时间:2016-07-21 07:55:29

标签: php laravel laravel-5.1 guzzle

我正在尝试使用Guzzle向远程Laravel服务器发送POST请求。问题是由于默认的Laravel csrf中间件,请求将始终被拒绝。

该请求用于将用户从主服务器上传的图像文件转发到服务器以存储图像。

有没有办法使用Guzzle设置正确的令牌?

如果不是,关闭图像服务器的csrf中间件是否安全,因为它只接收来自另一台服务器的请求?

3 个答案:

答案 0 :(得分:1)

由于您说的是远程Laravel服务器,因此无法预期CSRF令牌。 CSRF令牌用于由相同的laravel代码生成的网页。

  1. 您可以在/app/Http/Midddleware/VerifyCsrfToken.php处通过更新:
  2. 关闭此路线的CSRF令牌
      

    protected $ except = ['your-image-route-url'];

    1. 通过API令牌处理身份验证(授权:承载/或护照)

答案 1 :(得分:0)

您可以在发送请求之前生成CSRF令牌,并将其作为X-CSRF-Token添加到标头中。

答案 2 :(得分:0)

我知道这已经很老了,但简单的答案是,你至少不能成功验证这个请求,就像laravel 5.5 LTS一样。

因此,如果你想处理你的POST请求,要么将权限传递给它(这在你的guzzle请求中是不可能的),或者从midlleware VerifCsrfToken中删除csrf检查。

您可以通过在/app/Http/Midddleware/VerifyCsrfToken.php文件中包含protected $except的路线来实现此目的...

除非您的请求来自其他网站,否则您可能做错了...