首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Yii2 i2-user的访客用户的控制器/操作(不需要身份验证)

使用Yii2 i2-user的访客用户的控制器/操作(不需要身份验证)
EN

Stack Overflow用户
提问于 2021-08-20 11:28:56
回答 2查看 28关注 0票数 0

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

我已经在来宾的控制器中尝试过这样的东西:

代码语言:javascript
复制
'rules' => [
    [
        'allow' => true,
        'actions' => ['index', 'confirm', 'download-form', 'upload-form'],
    ]
],

这应该足够了。但不是的。我怀疑是me i2-user模块挡住了我的去路,并且总是将我重定向到登录。

我在web.php配置中添加了模块,如下所示:

代码语言:javascript
复制
'components' => [
    ...
    ...

    'user' => [
        'class' => 'nkostadinov\user\components\User',
        'identityClass' => 'nkostadinov\user\models\User',
        'enableConfirmation' => false,
        'as firstLoginPolicy' => [ 
            'class' => 'nkostadinov\user\behaviors\FirstLoginPolicyBehavior'
        ],
    ],
],

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-20 12:07:34

我已经解决了它,如下所示。

在我的web.php配置中,我有这样的配置:

代码语言:javascript
复制
'modules' => [
...
],
'as access' => [
    'class' => \yii\filters\AccessControl::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' => [ ... ]

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

代码语言:javascript
复制
[
    'controllers' => ['mymodule/my-controller'],    
    'allow' => true,    
],

就是这样。

票数 0
EN

Stack Overflow用户

发布于 2021-09-15 03:06:00

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68861480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档