繁体   English   中英

Laravel 403 禁止自定义请求验证

[英]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.

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