php – Laravel授权()混淆
我目前正在将一个项目从CodeIgniter迁移到Laravel5.
我在Laracasts中看到,您可以在调用控制器之前使用Request :: authorize()方法来授权访问,并返回true或false. 这将(我认为)是理想的解决方案,因为我可以在请求中包含权限检查,而不是通过权限检查和重定向/响应污染控制器. 唯一的问题是,当我从authorize()返回false时,它只是加载一个带有禁止写入的空白页,我在laravel.com上找不到任何关于如何模板化的文档(要么没有文档,要么我忽略了它) 我知道我可以编辑错误/ 404.blade.php中的404页面,但我无法弄清楚如何自定义403页面,我试图添加一个自定义的403.blade.php页面,其中没有得到显示. (https://mattstauffer.co/blog/laravel-5.0-custom-error-pages) 将这些权限检查放在请求中是个好主意吗?或者我错过了什么? 更新 我也试图创建中间件,并从一个方法调用中间件,这也不起作用,因为中间件甚至根本没有被调用. 更新2 解决方法
我所做的是为Request抽象类添加一个forbiddenResponse()方法.您可以从该方法返回响应对象以呈现人类可读错误.
namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; use IlluminateHttpJsonResponse; abstract class Request extends FormRequest { public function forbiddenResponse() { return new JsonResponse('Unauthorized',403); // or return Response::make('Unauthorized',403); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |