如果用户未登录,如何检查每个页面用户是否已记录,必须重定向到登录页面。 为了访问任何页面,用户必须执行身份验证。
答案 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"
这种情况。将其移除给其他控制器。