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;		



相关文章推荐

yii2简单注册登录

  • 2015年05月18日 00:00
  • 6.1MB
  • 下载

Yii2使用过程中一些小技巧的总结

yii2视图中渲染到另一个视图中 yii2将参数传递到layouts/main.php中 yii2在视图内进行渲染 yii2使用下拉框设置默认值以及默认选中 yii2checkboxList小部件默认...

Yii2 最简单的实现管理员才能登录后台

场景 有时候一个小项目,想实管理员才能登录后台,其实没必要引入复杂的 RBAC,可以利用 Yii User 表里面的 role 字段来实现这个效果。 实战:后台只有管理员才能登录 第一步:修改 ...

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

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

学习记录—yii2简单的登录功能实现

使用yii的数据库渲染方式,简单的做个登录表单 要求:登录成功则提示【登录成功】,密码错误或用户名错误提示【账户或密码错误!】 前段代码: field($model,...

SSH整合_-简单登录过程详解

  • 2012年04月17日 13:47
  • 653KB
  • 下载

存储过程简单总结

  • 2008年01月21日 09:49
  • 27KB
  • 下载

win7下安装yii2高级模板全过程

重装系统就安装yii2又遇到了很多问题,每次都不一样,上次安装由于没留下相关资料这次就把全部的安装过程记录下来了,上一次安装时四五个月之前了,版本也更新了,问题也是一些,以后每次安装都会记录下来,总结...

yii2安装过程记录

yii2框架出来有段时间了,一直想自己搭建一下,今天终于安装完成了。一下是安装的过程。 首先做一些准备工作:我本地开发用的是phpStudy集成环境。首先修改php.ini将openssl服务打开。...

Yii2 分析Controller::behaviors 触发过程

示例 客户端请求后的运行流程 简述 1 示例AccessControl是框架自带的,位于yii\filters目录下class SiteController extends Controller { ...
  • alex_my
  • alex_my
  • 2017年01月07日 12:02
  • 1188
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:YII登录过程简单总结
举报原因:
原因补充:

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