php - Laravel 403 禁止自定义请求验证
问题描述
我在这里关注了文档:
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 请求时,我403
从 Laravel 返回了一个。当我删除 StoreName 自定义验证并简单地键入标准 LaravelIlluminate\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
}
推荐阅读
- database - 非第一范式自然连接操作
- c - 为什么我不能将 C 代码中逻辑表达式的返回结果存储到变量中?
- css - 在 2 列中对齐具有不同高度的网格单元
- c++ - QComboBox 项目文本可以包含 2 种颜色吗?
- python - 我需要帮助来破译这个回文函数在做什么
- sed - Less ugly way to use sed to simply include a new line?
- javascript - React-Modal“无法读取空状态的属性”错误
- javascript - Symfony中的Form数据可以吗
- sql - When I run the query , it asks me a parameter query for Johnny?
- neo4j - Neo4j - extract all subgraphs from neo4j database