yii的登录机制,对新手来说,可能略显复杂,在这里,用系统自带的登录机制,结合我们自定义的登录,简单的实现一下基本的登录:
还是以AdminController为例:
1. class AdminController extends CController {
function actionLogin() {
if (count($_POST) > 0) {//登录页面提交过来的数据
$adminlogin = new UserIdentity($username, $password);//实例化UserIdentity
if ($adminlogin->userAuthenticate()) {//自己写的登录判断,如果通过则在yii自带的登录机制中登录
Yii::app()->user->login($adminlogin);//yii自带登录后会跳转到之前页面,具体看系统自带的afterLogin()方法
}
}
$this->render('login');
}
}
2.在model下面创建一个UseIdentity继承一下CUserIdentity,里面的userAuthenticate就是我们自定义的登录,比如从数据库读取数据进行验证,成功返回true,失败返回false,返回给上面的AdminController里的login方法,这里为了省事没从数据库取密码验证什么的,直接返回true
class UserIdentity extends CUserIdentity {
public function userAuthenticate(){
$this->_id = 1;//用户的id,一般是用户在数据库中的id,必需设置
$this->setState('nickname',$this->username);//可选保存
return true;
}
public function getId(){
return $this->_id;
}
}
上面两步就直接实现了简单的登录,自定义并同步了yii的登录机制