使用Yii2-user的来宾用户(不需要身份验证)的控制器/动作



我使用Yii2(基本)和Yii2-user与用户的网站。对于大多数操作,都需要进行身份验证。我如何使控制器/动作作为来宾访问?

我在客人的控制器中尝试过这样的事情:

'rules' => [
[
'allow' => true,
'actions' => ['index', 'confirm', 'download-form', 'upload-form'],
]
],

这应该足够了。但不。我怀疑这是Yii2-user模块谁得到的方式,总是重定向我登录。

我在web。php配置中添加了这样的模块:

'components' => [
...
...
'user' => [
'class' => 'nkostadinovusercomponentsUser',
'identityClass' => 'nkostadinovusermodelsUser',
'enableConfirmation' => false,
'as firstLoginPolicy' => [ 
'class' => 'nkostadinovuserbehaviorsFirstLoginPolicyBehavior'
],
],
],

任何想法?

我已解决如下:

在我的web.php配置中:

'modules' => [
...
],
'as access' => [
'class' => yiifiltersAccessControl::className(),//AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error', 'request', 'change-password'],
'allow' => true,
'roles' => ['?']
],
[
//'actions' => ['logout', 'index'], // add all actions to take guest to login page
'allow' => true,
'roles' => ['@'],
],        
],
],
'params' => [ ... ]

所以,我添加了这个新规则来授予来宾用户访问这个控制器的所有操作的权限:

[
'controllers' => ['mymodule/my-controller'],    
'allow' => true,    
],

就是这样。

我建议您使用mdmsoft/yii2-admin进行身份验证

最新更新