Yii2注销管理部分无法正常工作

时间:2017-11-24 07:13:09

标签: php authentication yii2 yii2-advanced-app yii2-user

我使用了Yii2高级版。 Everyhting运行良好,但只有我的管理面板中的注销无法正常工作。当我点击Logout时,它会将我渲染到index.php并且不要将我退出,第二次单击ot注销它会将我渲染为login.php,但是当我尝试连接到admin部分时,实际上我仍然记录了..如果我等待15-20 sek它就把我登出来让我登录到login.php ...我真的不明白想继续... 这是我的行动:

<li class="dropdown menu-merge">
   <a href="#" class="dropdown-toggle fw600 p15" data-toggle="dropdown">
     <span class="hidden-xs pl15"><?php echo Yii::t('app', 'Hi'); ?>, <?php echo Yii::$app->user->identity->username; ?></span>
     <span class="caret caret-tp hidden-xs"></span>
   </a>
   <ul class="dropdown-menu list-group dropdown-persist w250" role="menu">
     <li class="dropdown-footer">
        <a href="/admin/user/settings/profile" class="">
           <span class="glyphicons glyphicons-user"></span>  <?php echo Yii::t('app', 'Profile'); ?> </a>
     </li>
     <li class="dropdown-footer">
       <a>
          <?php
          echo Html::beginForm(['/site/logout'], 'post')
               . Html::submitButton(
               '<span class="fa fa-power-off pr5"></span>' . Yii::t('app', 'Logout'), ['class' => 'btn-link']
               )                    
               . Html::endForm() 
          ?>
          </a>
       </li>
    </ul>
 </li>

这是行动

  public function actionLogout() {
            Yii::$app->user->logout();

            return $this->goHome();
        }
我的行为操作中的

设置:

public function behaviors() {
        if (Yii::$app->user->identity) {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'ruleConfig' => [
                        'class' => AccessRule::className(),
                    ],
                    'rules' => [
                        [
                            'allow' => true,
                            'roles' => ['SuperAdmin', 'Admin'],
                        ],
                        [
                            'actions' => ['selectaddress', 'addproductreview', 'clearallspecs', 'addincomparelist', 'makeexpressorder', 'buyproductwithqty', 'loadcolorgallery', 'drawgraph', 'addproductcomment',
                                'addfornewsletter', 'setspecval', 'addrating', 'deletefromwishlist', 'deletefromcomparelist', 'tbi', 'buyproduct', 'deleteproductfromcart', 'deleteallproducts',
                                'changeqtyfromcartup', 'changeqtyfromcartdown', 'addinwishlist'],
                            'allow' => true,
                        ],
                    ],
                    'denyCallback' => function ($rule, $action) {
                return $this->redirect('/bg/user/logout');
            },
                ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post'],
                    ],
                ],
            ];
        } else {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'ruleConfig' => [
                        'class' => AccessRule::className(),
                    ],
                    'rules' => [
                        [
                            'allow' => true,
                            'roles' => ['SuperAdmin', 'Admin'],
                        ],
                        [
                            'actions' => ['selectaddress', 'addproductreview', 'clearallspecs', 'addincomparelist', 'makeexpressorder', 'buyproductwithqty', 'loadcolorgallery', 'drawgraph', 'addproductcomment',
                                'addfornewsletter', 'setspecval', 'addrating', 'deletefromwishlist', 'deletefromcomparelist', 'tbi', 'buyproduct', 'deleteproductfromcart', 'deleteallproducts',
                                'changeqtyfromcartup', 'changeqtyfromcartdown', 'addinwishlist'],
                            'allow' => true,
                        ],
                    ],
                ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post'],
                    ],
                ],
            ];
        }
    }

1 个答案:

答案 0 :(得分:2)

rules

中使用此数组
[
    'allow' => true,
    'action'=>['logout','index'],
    'roles' => ['@'],
],

并将其用于注销

Html::a(
   'Sign out', ['/site/logout'], ['data-method' => 'post', 'class' => 'btn btn-default btn-flat']
)
相关问题