码迷,mamicode.com
首页 > Web开发 > 详细

yii 用户登录验证(cwebuser) yii 用户登录 (记)

时间:2014-05-04 09:58:04      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:cWeb   class   ext   get   文件   com   

yii 的确是一个强大而臃肿的框架,简单的小项目,或者只做后台接口调用的项目,建议不要用。

 

今天记录一下yii使用中cwebuser(Yii::app()->user->login())登录;

1、准备工作

官方标准做法,在components里加一个UserIdentity.php文件,class UserIdentity extends CUserIdentity

继承CUserIdentity,然后在UserIdentity类里面写验证的业务过程(比如你在哪张表去查数据,取数据之类)

 

2、开始登录

new 一个UserIdentity,传入参数,然后执行验证方法

例:

$this->_identity=new UserIdentity($this->username,$this->password);
$this->_identity->authenticate();

 

3、调用Yii::app()->user->login()保存数据(session)

调用YII组件设置session

Yii::app()->user->login($this->_identity,$duration);//$duration,session过期时间,此方法在/framework/web/auth/CWebUser.php     LINE 222

$this->_identity对象中getId(),getName()方法一般返回用户名,用户ID等,

官方的CUserIdentity类里,都是返回用户名($this->username)//此方法在/framework/web/auth/CUserIdentity  LINE 78

如果需要UID的话,可以在UserIdentity重写getId()方法,这样你在使用yii::app()->user->getId()的时候,调用的就是UID而不是username了。

这样就可以通过yii::app()->user->getId(),yii::app()->user->getName()访问SESSION里的用户数据,

如果还需要放其他数据,在CUserIdentity类里重写getPersistentStates()方法,然后把你要保存的数据以数据形式return 出来。

这里你就可以通过yii::app()->user->getState(‘key‘);这种形式调用,这里的key是getPersistentStates()方法return出来的数组key。

 

此文说明一个yii用户验证的思路,不建议复制文中任何一句代码。可以在阅读理解后,自己操作。有基础功力可以看看/framework/web/auth/CWebUser.php源码

 

 

 

 

 

 

 

 

 

 

 

yii 用户登录验证(cwebuser) yii 用户登录 (记),布布扣,bubuko.com

yii 用户登录验证(cwebuser) yii 用户登录 (记)

标签:cWeb   class   ext   get   文件   com   

原文地址:http://www.cnblogs.com/naci/p/3705916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!