Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么登录后用户在yii2中同时保留guest和user角色?_Yii2 - Fatal编程技术网

为什么登录后用户在yii2中同时保留guest和user角色?

为什么登录后用户在yii2中同时保留guest和user角色?,yii2,Yii2,我在yii2项目中使用rbac。当我打印时 var_dump(\Yii::$app->authManager->getRolesByUser(Yii::$app->user->id)); 我得到一个包含两个元素的数组:guest和user? 为什么“来宾”角色保留在授权用户处?这是正常行为还是我做错了什么?这是意料之中的。如果将某些角色添加到defaultRoles,则无论身份验证状态如何,该角色都将始终可用。从文档: 自动分配给每个用户的角色名列表,无需调用assig

我在yii2项目中使用rbac。当我打印时

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否,请参阅此问题:。如果希望根据上下文使其更具动态性,则需要使用。