Laravel 5.4 - 如何防止一个人的角色能够访问另一个角色的属性?



我有一个库存应用程序,该应用具有三个不同的角色,即操作员,管理员和超级管理员。

问题是,当我输入其中一个角色时,我可以通过在浏览器的链接栏中编写菜单来访问菜单属于另一个角色。

示例

在管理页面中有一个备份和还原菜单,link: /admin/backupAndRestore

然后我作为操作员登录

在"操作员"页面中只有项目借贷和返回项目菜单,但是如果我在浏览器的链接栏中编写admin备份和还原菜单的链接,例如localhost: 8000/admin/backupAndRestore,我可以访问该页面。

我想让它像登录的用户无法访问寄存器或登录页面并重定向到主页,我该怎么办?

您正在寻找的功能在Laravel框架中被称为授权。由于您可以以多种不同的方式技术来实现用户角色,因此在此处为您发布代码示例是不现实的。相反,我建议您阅读有关授权的整个文档页面,然后设计适合您设置的实现。您很可能需要使用策略来构建逻辑,这些策略是围绕特定模型组织授权逻辑的类。

最新更新