为什么登录后用户在yii2中同时保留guest和user角色?
我在yii2项目中使用rbac。当我打印时为什么登录后用户在yii2中同时保留guest和user角色?,yii2,Yii2,我在yii2项目中使用rbac。当我打印时 var_dump(\Yii::$app->authManager->getRolesByUser(Yii::$app->user->id)); 我得到一个包含两个元素的数组:guest和user? 为什么“来宾”角色保留在授权用户处?这是正常行为还是我做错了什么?这是意料之中的。如果将某些角色添加到defaultRoles,则无论身份验证状态如何,该角色都将始终可用。从文档: 自动分配给每个用户的角色名列表,无需调用assig
var_dump(\Yii::$app->authManager->getRolesByUser(Yii::$app->user->id));
我得到一个包含两个元素的数组:guest和user?
为什么“来宾”角色保留在授权用户处?这是正常行为还是我做错了什么?这是意料之中的。如果将某些角色添加到
defaultRoles
,则无论身份验证状态如何,该角色都将始终可用。从文档:
自动分配给每个用户的角色名列表,无需调用assign()。请注意,无论用户的身份验证状态如何,这些角色都将应用于用户
您在
Yii::$app->authManager->defaultRoles中是否有来宾?是的,我有。用户登录后,我只想在Yii:$app->authManager->getRolesByUser(Yii::$app->user->id)中保留“user”角色,并且在用户登录后,无法删除默认角色?@RuslanNasrutdinov否,请参阅此问题:。如果希望根据上下文使其更具动态性,则需要使用。