Yii2登录问题

时间:2017-09-23 18:39:41

标签: php yii2

为什么Yii2认证在屁股上如此痛苦?

我想限制只有经过身份验证的用户才能访问reinterpreter<T>控制器的index操作。我已经下载了基本的应用程序模板。以下是SiteController的{​​{1}}方法的代码:

behaviors()

SiteController操作:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'only' => ['login', 'logout', 'index'],
            'rules' => [
                [
                    'allow' => true,
                    'actions' => ['logout', 'index'],
                    'roles' => ['@'],
                ],
                [
                    'allow' => true,
                    'actions' => ['login'],
                    'roles' => ['?'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout' => ['post'],
            ],
        ],
    ];
}

用户模型根本没有修改。为什么当我尝试访问index时,它正确地将我重定向到public function actionIndex() { return $this->render('index'); } ,但即使我使用管理员凭据(site/index / site/login登录后),我也会再次重定向到登录页面? WTF在这里错了?有趣的是,我在运行时日志中读到用户管理员已登录,但登录页面再次显示。

1 个答案:

答案 0 :(得分:0)

请确保您确实已记录并且您的登录操作正常工作,请确保您在urlManager配置或htaccess中没有重定向,那么您也可以尝试这种方式

  public function behaviors()
  {
      return [
          'access' => [
              'class' => AccessControl::className(),
              'rules' => [
                  [
                      'actions' => ['login', 'error'],
                      'allow' => true,
                  ],
                  [
                      'actions' => ['logout', 'index'],
                      'allow' => true,
                      'roles' => ['@'],
                  ],
              ],
          ],
          'verbs' => [
              'class' => VerbFilter::className(),
              'actions' => [
                  'logout' => ['post'],
              ],
          ],
      ];
  }