繁体   English   中英

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

[英]How to handle laravel csrf when sending a Guzzle POST request?

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

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

有没有一种方法可以使用Guzzle设置正确的令牌?

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

因为您是在说远程Laravel服务器,所以不能期望CSRF令牌。 CSRF令牌用于由相同的laravel代码生成的网页。

  1. 您可以通过/app/Http/Midddleware/VerifyCsrfToken.php关闭此路由的CSRF令牌,方法是更新:

受保护的$ except = ['your-image-route-url'];

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

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

我知道这已经很老了,但是简单的答案是,至少对于laravel 5.5 LTS,您无法成功验证此请求。

因此,如果您想处理POST请求,请向其传递正确的令牌(这在您的耗时请求中是不可能的),或者从中间件VerifCsrfToken中删除csrf检查。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM