ZfcRbac 角色提供者和身份 getRoles()
ZfcRbac Role Provider and Identity getRoles()
我在使用 ZfcRbac
时无法理解一个概念。
1. 我使用自己的 User
实体来实现 ZfcRbac\Identity\IdentityInterface
2. 这个接口有 addRole
和 getRoles
方法并且 getRoles()
应该 return 数组 Rbac\Role\RoleInterface
所以我有一个数组 Rbac\Role\RoleInterface
3. 我从自定义模型中获取角色,并在验证用户
时通过 addRole()
将角色添加到 User
实体
4. Rbac\Role\RoleInterface
有 hasPermission()
方法,其中 return 角色的权限
总结:
身份验证后,我获得了经过身份验证的 User
身份信息、角色和每个角色的权限。为什么我需要另一个 RoleProvider
并在其中列出我的所有角色?我错过了什么?
如您所见in the php doc in the IdentityInterface
getRoles()
方法可以return 两件事:
1. 一个字符串数组
2. Rbac\Role\RoleInterface
的数组
如果你 return 一个字符串数组,你需要一个额外的 RoleProvider
到 "translate" 字符串到 Rbac\Role\RoleInterface
的实际实例。如果你 return 一个 Rbac\Role\RoleInterface
的数组,在我看来你不再需要 RoleProvider
.
在我看来,角色提供程序不是用于生成用户角色列表,而是用于加载和构建可访问的应用程序角色列表,这些角色具有在授权服务期间和授权服务中使用的权限。
所以我正在扩展 Zend\Authentication\AuthenticationService
以便我可以实现 ZfcRbac\Identity\IdentityInterface
的抽象方法 getRoles()
。
我仍然需要为访问用户角色和存储要授权的用户角色编写代码。使用 AuthenticationService
或 IdentityInterface
加载用户角色的示例并不多,角色提供者的加载似乎有据可查。我正在尝试将身份验证与授权分离。我进行身份验证,然后在我的授权模块中加载用户的角色,因为我可能会遇到这样的情况,即只需要进行身份验证,而加载来宾角色是开销。
我在使用 ZfcRbac
时无法理解一个概念。
1. 我使用自己的 User
实体来实现 ZfcRbac\Identity\IdentityInterface
2. 这个接口有 addRole
和 getRoles
方法并且 getRoles()
应该 return 数组 Rbac\Role\RoleInterface
所以我有一个数组 Rbac\Role\RoleInterface
3. 我从自定义模型中获取角色,并在验证用户
时通过addRole()
将角色添加到 User
实体
4. Rbac\Role\RoleInterface
有 hasPermission()
方法,其中 return 角色的权限
总结:
身份验证后,我获得了经过身份验证的 User
身份信息、角色和每个角色的权限。为什么我需要另一个 RoleProvider
并在其中列出我的所有角色?我错过了什么?
如您所见in the php doc in the IdentityInterface
getRoles()
方法可以return 两件事:
1. 一个字符串数组
2. Rbac\Role\RoleInterface
如果你 return 一个字符串数组,你需要一个额外的 RoleProvider
到 "translate" 字符串到 Rbac\Role\RoleInterface
的实际实例。如果你 return 一个 Rbac\Role\RoleInterface
的数组,在我看来你不再需要 RoleProvider
.
在我看来,角色提供程序不是用于生成用户角色列表,而是用于加载和构建可访问的应用程序角色列表,这些角色具有在授权服务期间和授权服务中使用的权限。
所以我正在扩展 Zend\Authentication\AuthenticationService
以便我可以实现 ZfcRbac\Identity\IdentityInterface
的抽象方法 getRoles()
。
我仍然需要为访问用户角色和存储要授权的用户角色编写代码。使用 AuthenticationService
或 IdentityInterface
加载用户角色的示例并不多,角色提供者的加载似乎有据可查。我正在尝试将身份验证与授权分离。我进行身份验证,然后在我的授权模块中加载用户的角色,因为我可能会遇到这样的情况,即只需要进行身份验证,而加载来宾角色是开销。