Laravel 5 检查权限

Posted

技术标签:

【中文标题】Laravel 5 检查权限【英文标题】:Laravel 5 check permission 【发布时间】:2016-11-15 15:17:00 【问题描述】:

我在控制器层之前有请求层来验证规则并从输入中获取正确的数据,但是放置检查权限的正确位置在哪里? 例如,如果用户想使用 API 更新其个人资料 user?user_id=1 使用 PUT 方法 我想用 user_id 参数检查登录用户 id,如果我把它放在请求层我应该在请求层使用模型在编程结构方面是否正确?如果没有,它的位置在哪里更好?

【问题讨论】:

【参考方案1】:

如果您将这种逻辑放在您的请求中,这将明显违反 SRP。请求抽象层负责读取输入数据并以清晰的形式将它们序列化。

鉴于用户的输入改变模型层的状态,有时是关联的视图层,控制器有责任。所以控制器无法验证用户的输入。

因此您的验证将存在于模型层。该层负责域逻辑,并且是像您一样进行所有相关验证的地方。

我建议你阅读两遍this 文章。也尝试更多SOLID,并开始实现dependency injection等概念

【讨论】:

以上是关于Laravel 5 检查权限的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中检查网站地址的访问权限

如何在登录具有 Spatie 的 Laravel 权限的用户之前检查用户角色?

Laravel 5.5:laravel.log 无法打开:权限被拒绝

Laravel 5:laravel.log 无法打开:权限被拒绝

Laravel 5.1 中的权限被拒绝问题

写入日志文件时Laravel 5权限被拒绝