怎么在dev环境禁用laravel的csrf功能
Laravel默认会为POST、PUT、DELETE等请求启用CSRF(跨站请求伪造)验证功能,为了在开发环境中使用Postman等工具进行测试,我们可以临时禁用CSRF验证:
1. 在App\Http\Kernel.php文件里的$middlewareGroups数组中,注释或者删除’csrf’ middleware:
'api' => [ // 'throttle:60,1', // 'bindings', // 'csrf', ],
2. 另一种方法是在Http\Middleware\VerifyCsrfToken.php 中的handle方法返回true:
public function handle($request, Closure $next) { return $next($request); }
3. Laravel也提供了一个全局属性APP_ENV来判断当前环境:
if(app()->environment('local')) { // 禁用CSRF }
4. Postman中设置Request Header添加 X-CSRF-TOKEN字段,取值 csrf-token的值。
以上方法可以临时在开发环境禁用CSRF功能,目的是方便使用Postman等工具进行接口测试。
在生产环境中,仍需要保留CSRF验证功能以防止跨站请求攻击。