laravel的权限包laravel-permission,里面有个guard_name表示什么意思?
laravel的权限包laravel-permission,里面有个guard_name表示什么意思?
给你多一个选择,权限控制可以用 PHP-Casbin
支持 Laravel 的扩展Laravel-Authz
:https://github.com/php-casbin...
支持 rbac、uri权限、restful、中间件、缓存 等。
每一个 Guard 代表一个用户组。
你可以用 Guard 来区分出前后台,实现多个用户认证系统。
在 auth.php 中添加好 Guard 之后,就可以使用:
每一个 Guard 代表一个用户组。
我们可以有多组用户系统,比方说用户管理员都在不同的用户组中。
补充:
上面的“用户组”,可能不太准确,准确的说,应该是一个认证类型。
例如Web Guard 用来认证前台用户、Admin Guard 用来认证后台用户、Api Guard 用来认证为第三方提供的接口。
如果只是用户组的区别,那么将无需定义多个Guard。只有在你的认证要素不尽相同的情况下,才需要使用多个Guard 。例如,Web Guard 通常使用用户名密码来认证。而Api Guard 使用token或者OAuth
另外,认证后的权限策略也可能有所不同,才需要不同的Guard ,例如Web Guard 可能是只能修改自己的发布的内容,而Admin Guard 却可能是通过权限来判定能操作哪些用户组发布的内容。
简而言之,Guard 是在RBAC权限系统更上一层的东西。用来区分RBAC无法区分(覆盖)的部分。