[英]Laravel 403 forbidden on custom Request validation
我遵循了这里的文档:
https://laravel.com/docs/5.8/validation#form-request-validation
我创建了一个自定义请求 StoreName
php artisan make:request StoreName
然后添加了以下验证规则:
public function rules()
{
return [
'name' => 'required|max:255|min:4'
];
}
然后根据我的控制器中的文档类型提示:
public function store(StoreName $request)
{
$validated = $request->validated();
}
但是,当我向该端点发送 post 请求时,我从 Laravel 返回了403
。 当我删除 StoreName 自定义验证并简单地输入提示标准 Laravel Illuminate\\Http\\Request
,请求工作正常(显然删除了 valid() 方法之后)。
所以 403 来自我的自定义验证请求,我不知道为什么? 我已经检查了 StoreName.php 文件的文件权限,它们与项目中的所有其他文件相同。
我正在为我的开发服务器使用php artisan serve
,所以也没有时髦的 Apache/Nginx 配置覆盖东西。 当应用自定义验证请求时,所有其他端点都与此端点不同。
可能是什么问题?
编辑:
可能值得注意的是,我也没有更改 Laravel 在新的自定义请求验证中生成的默认 authorize() 方法:
public function authorize()
{
return false;
}
在您的自定义请求类中,您有一个这样的方法:
public function authorize()
{
return true; // this is false by default which means unauthorized 403
}
public function authorize()
{
return false;
}
对您的请求进行更改 false 为 true
public function authorize()
{
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.