详解yii用户登录体系
来源:互联网 发布:35互联域名管理 编辑:程序博客网 时间:2024/05/22 13:22
详解yii用户登录体系
下面将我对yii用户登录的分析拿出来与大家共享一下,我是从Yii::app()->user,登录验证,持久化三个方面来研究
一.Yii::app()->user
这是Yii底层调用用户组件,是cwebuser的一个实例,如果没有在main.php文件里配置的话yii默认会调用cwebuser,当然也可以自己去扩展cwebuser这个类
先说一下所有组件类的基类-CComponent,ccomponent实现了定义,使用属性和事件的协议,属性石通过属性是通过getter方法或/和setter方法定义。
访问属性就像访问普通的对象变量。读取或写入属性将调用应相的 getter或setter方法
例-〉
$a=$component->text; // 相当于 $a=$component->getText();
$component->text='abc'; // 相当于 to $component->setText('abc');
getter 和 setter 方法的格式如下:
// getter, 定义读取属性 'text'
public function getText() { ... }
// setter, 定义写入属性 'text' 将 $value 的值赋给这个属性
public function setText($value) { ... }
由此可以看出,在调用CComponent对象属性的时候,可以调用$this->getUser()方法也可以直接用$this->user这个属性。
来看一下登录流程:
用户的登录页面是site/login,actionLogin中首先实例化了一个LoginForm对象,当用户登录数据提交后系统调
用LoginForm的loginin方法在此方法中调用了CUserIdentity类的一个子类(自由扩展)的authenticate方法对用户名,密码进行验证。验证通过后,调用一下CWebuser的login方法,在此方法中会调用创建session的方法,从而保证了cwebuser的持久化。
具体的概述就是:
CWebUser 代表一个Web应用程序的持久状态.
CWebUser 作为ID为user的一个应用程序组件. 因此, 在任何地方都能访问用户状态 Yii::app()->user.
CWebUser 应该和一个 identity 一起使用 identity 实现了实际的验证算法.
一个典型的使用CWebUser的身份验证过程如下:
用户提供所需的信息进行身份验证.
一个 identity instance 是用用户提供 的信息创建的.
调用 IUserIdentity::authenticate 来检查identity是否有效.
如果有效, 调用 CWebUser::login 登陆用户, 然后用户浏览器重定向到 returnUrl.
如果无效, 从identity instance中检索错误代码或错误信息然后显示
下面将我对yii用户登录的分析拿出来与大家共享一下,我是从Yii::app()->user,登录验证,持久化三个方面来研究
一.Yii::app()->user
这是Yii底层调用用户组件,是cwebuser的一个实例,如果没有在main.php文件里配置的话yii默认会调用cwebuser,当然也可以自己去扩展cwebuser这个类
先说一下所有组件类的基类-CComponent,ccomponent实现了定义,使用属性和事件的协议,属性石通过属性是通过getter方法或/和setter方法定义。
访问属性就像访问普通的对象变量。读取或写入属性将调用应相的 getter或setter方法
例-〉
getter 和 setter 方法的格式如下:
由此可以看出,在调用CComponent对象属性的时候,可以调用$this->getUser()方法也可以直接用$this->user这个属性。
来看一下登录流程:
用户的登录页面是site/login,actionLogin中首先实例化了一个LoginForm对象,当用户登录数据提交后系统调
用LoginForm的loginin方法在此方法中调用了CUserIdentity类的一个子类(自由扩展)的authenticate方法对用户名,密码进行验证。验证通过后,调用一下CWebuser的login方法,在此方法中会调用创建session的方法,从而保证了cwebuser的持久化。
具体的概述就是:
CWebUser 代表一个Web应用程序的持久状态.
CWebUser 作为ID为user的一个应用程序组件. 因此, 在任何地方都能访问用户状态 Yii::app()->user.
CWebUser 应该和一个 identity 一起使用 identity 实现了实际的验证算法.
一个典型的使用CWebUser的身份验证过程如下:
用户提供所需的信息进行身份验证.
一个 identity instance 是用用户提供 的信息创建的.
调用 IUserIdentity::authenticate 来检查identity是否有效.
如果有效, 调用 CWebUser::login 登陆用户, 然后用户浏览器重定向到 returnUrl.
如果无效, 从identity instance中检索错误代码或错误信息然后显示
转自:http://blog.sina.com.cn/s/blog_81ad08410100z20m.html
0 0
- 详解yii用户登录体系
- 详解yii用户登录体系
- 详解yii用户登录体系
- 详解yii用户登录体系
- Yii 用户登录验证
- Yii 用户登录验证
- Yii 用户登录体
- yii 登录用户数据获取 (yii学习)
- Linux用户体系详解
- Yii用户登录信息。获取用户ID
- Laravel 用户认证体系详解
- Yii 用户登录和注销流程
- YII 用户登录 借鉴ecshop salt思路
- YII MVC之用户注册和用户登录(一)
- yii登录
- Yii框架登录验证和全局访问用户ID
- Yii登录验证和全局访问用户ID
- Yii登录验证和全局访问用户ID
- Debug.Log的妙用
- 互联网产品经理核心素质能力模型
- 实践作业:从键盘输入一系列字符串,写入到某磁盘文件中
- 使用SwingWorker之一
- nyoj115
- 详解yii用户登录体系
- AIX在线自学--只为小伙伴们
- #和##
- javaScript中的假值
- 使用SwingWorker之二
- 手动9 - 安装vsftpd
- Linux SSh scp使用【远程传输】
- ZJU PAT 1018 锤子剪刀布
- 检测数据库中是否存在某一张表