如果用户没有登录,如何在yii中重定向登录页面?

时间:2014-07-15 04:28:13

标签: redirect yii

如果用户未登录,如何检查每个页面用户是否已记录,必须重定向到登录页面。 为了访问任何页面,用户必须执行身份验证。

2 个答案:

答案 0 :(得分:1)

Yii为操作提供accesscontrol,这是示例。试试这个,如果访客用户尝试访问这些操作,他们将被重定向到登录页面

    class ExampleController extends Controller {
        /**
         * @return array action filters
         */
        public function filters() {
            return array(
                'accessControl', // perform access control for CRUD operations
            );
        }

        /**
         * Specifies the access control rules.
         * This method is used by the 'accessControl' filter.
         * @return array access control rules
         */
        public function accessRules() {
            return array(

                array('allow', // allow authenticated user to perform these actions
                    'actions' => array('create','delete'),  // add the actions need authuentication
                    'users' => array('@'),
                ),                
            );
        }    
    }

答案 1 :(得分:0)

在每个控制器中添加此功能。

public function beforeAction($action) {

if (Yii::app()->user->isGuest && Yii::app()->controller->action->id != "login") {
    Yii::app()->user->loginRequired();
}
//something code right here if user valid
return true;  
}

站点控制器只需要Yii::app()->controller->action->id != "login"这种情况。将其移除给其他控制器。