YII登录过程简单总结

原创 2013年12月04日 20:42:58

用户的登录、过程是一个比较费劲的事,还在Yii提供了组建支持,熟练的使用该组件,在开发中可以大大的减少时间。

在siteController中有如下actionLogin()

if ($isGuest){
			$model=new LoginForm;		
			if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
			{
				echo CActiveForm::validate($model);
				Yii::app()->end();
			}
			if(isset($_POST['LoginForm']))
			{		
				$model->attributes=$_POST['LoginForm'];	
		
				if($model->validate() && $model->login()){	
					ob_start();
					$this->redirect(array("fortune/aucno"));
				}
			}

			$this->render('login',array('model'=>$model));
其中$model->login()调用的是model/LoginForm.php中的login方法,继续追踪改login()方法:

public function login()
	{
	
		if($this->_identity===null)
		{
		
			$this->_identity=new UserIdentity($this->username,$this->password);
			$this->_identity->authenticate();
		}
		if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
		{
		
			$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
			Yii::app()->user->login($this->_identity,$duration);
			return true;
		}
		else
			return false;
	}


$this->_identity=new UserIdentity($this->username,$this->password);执行的是链接数据据库验证用户名密码

Yii::app()->user->login($this->_identity,$duration);//这条语句执行的是设置session或者cookie操作,具体可以查看yii参考文档

该方法可重写,代码如下很容易看懂:

	$user=new User();
 		$username=trim($this->username);
	    $user=$user->find("username='".$username."'");
	    if(isset($user)){
	    $password=$user->password;
	    $userid=$user->id;
	    $this->id=$userid;
	    }
		if(!isset($this->username) or !isset($user) or $user=""){

			$this->errorCode='323';//self::ERROR_USERNAME_INVALID;
		}
		else if($password!=md5($this->password)){

			$this->errorCode=self::ERROR_PASSWORD_INVALID;						
		}
		else{

			$this->errorCode=self::ERROR_NONE;
		}		
		return !$this->errorCode;		



yii验证码、登录、退出教程

捣鼓了一下午,总算走通了,下面贴出代码
  • molaifeng
  • molaifeng
  • 2014年08月27日 17:33
  • 3107

Yii 用户登陆机制

这个类在 components 里面,会在应用一开始的时候就加载,用于最基础的用户验证,可以看到,该函数一开始只是简单地定义了两个用户 demo 和 admin,而密码也只是 demo 和 admin...
  • jcjc918
  • jcjc918
  • 2014年07月23日 18:58
  • 18592

Yii2.0 探究三 :用户登录机制

前言:做后台管理的首要任务当然是登陆、注册;就yii来说,它为我们封装好了用户的验证方法,验证过程,所以,我们要做的就是模仿,既然接触了这个框架,就要照这个框架来思考,也就是Tink in YII,用...
  • LLopensorce
  • LLopensorce
  • 2016年11月28日 00:19
  • 2350

Yii 2.0学习日记:用户登陆详细解析(上)

最近在利用Yii 2.0框架进行项目后台的编写,遇到的第一个问题是用户登陆,包括利用cookie,session登陆等等,笔者从源码角度结合实例为各位详细解析如何编写一个完整的用户登陆模块。(笔者的本...
  • a553181867
  • a553181867
  • 2016年03月26日 16:15
  • 9077

yii中登录后跳转回登录前请求的页面

当我们请求一个经过权限控制的请求不通过时,会跳转到一个地方请求权限,请求结束后需要跳转回之前的页面。比如我们请求一个需要登录的action,会被跳转到login页面,我们希望登录成功后跳转到我们之前希...
  • liangpz521
  • liangpz521
  • 2013年12月13日 21:15
  • 1211

Yii 登陆失败 一定次数 显示验证码

原文  http://www.yiiframework.com/wiki/339/show-captcha-after-n-unsuccessfull-attempts/ In this mini...
  • chenqianghaoma
  • chenqianghaoma
  • 2014年03月14日 12:55
  • 1272

Yii 简单登录操作

控制器
  • clj9017
  • clj9017
  • 2014年01月21日 16:54
  • 438

Yii2.0登录功能代码实现

yii归档文件中的basic应用是带登录功能的,见user相关。同时basic中已经带了基本登录Login模板。一、建立controller/action这里用到SiteController的acti...
  • zly9923218
  • zly9923218
  • 2015年10月05日 14:43
  • 4015

Yii 登录表单模型的简单操作

前端控制器 MyAdminController.php文件 class MyAdminController extends Controller{ public function ...
  • clj9017
  • clj9017
  • 2013年12月12日 17:47
  • 837

Yii2 防止用户重复登录

1.新建存放用户登录口令token的表,并生成model CREATE TABLE IF NOT EXISTS `tbl_admin_session` ( `session_id` int(11)...
  • navioo
  • navioo
  • 2016年07月21日 10:06
  • 1876
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:YII登录过程简单总结
举报原因:
原因补充:

(最多只允许输入30个字)