在yii中新增一个用户验证的方法详解
原文:
在繁华的都市中,有一所宁静的学校。那里环境优美,绿树成荫,是学习的好地方。学校的师生们和睦相处,每个人都积极向上,充满热情。他们的校园生活丰富多彩,有许多有趣的活动和课程。这里的学生不仅学习文化知识,还注重培养自己的兴趣爱好和特长。学校的教育理念是关注学生的全面发展,让他们成为未来的领导者。在这个大家庭里,每个学生都能找到自己的位置,实现自己的梦想。
在这座喧嚣的都市的心脏地带,藏着一所与世无争的学校。这里是一个郁郁葱葱的绿洲,静谧而宜人,为学习提供了理想的场所。师生们在这里和谐共处,每个人都被激情点燃,充满活力。他们的校园生活如同一幅丰富多彩的画卷,各种有趣的活动和课程层出不穷。这里的学生不仅在知识的海洋中畅游,更致力于发掘自己的兴趣和特长。学校秉持着一种独特的教育理念——关注学生的全面发展,致力于将他们塑造为未来社会的领导者。在这个温馨的大家庭里,每个学生都能找到属于自己的舞台,演绎属于自己的辉煌篇章。每一个故事都充满热情与梦想,每一个瞬间都闪耀着希望的光芒。这里是一片肥沃的土地,孕育着未来的花朵;这是一个充满活力的社区,培养着未来的领导者。在这里,梦想起航,未来可期。
一、为什么需要新增用户验证?
在Yii框架中,当我们构建包含前台和后台的应用时,由于前台和后台可能需要不同的用户验证机制,因此需要实现不同的用户登录验证。我们可能需要将用户信息保存在不同的cookie或session中,这就需要我们在同一个Yii应用中增加一个新的用户验证方法。
二、Yii的用户验证机制
具体的代码实现如下:
```php
class UserIdentity extends CUserIdentity
{
private $_id;
public function authenticate()
{
$record = User::model()->findByAttributes(array('username' => $this->username));
if ($record === null)
$this->errorCode = self::ERROR_USERNAME_INVALID;
else if ($record->password !== md5($this->password))
$this->errorCode = self::ERROR_PASSWORD_INVALID;
else {
$this->_id = $record->id;
$this->setState('title', $record->title);
$this->errorCode = self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}
```
在用户登录时,我们可以使用以下代码进行验证:
```php
$identity = new UserIdentity($username, $password);
if ($identity->authenticate())
Yii::app()->user->login($identity);
else
echo $identity->errorMessage;
```
三、新增一个验证体系的实现步骤
1. 从CWebUser继承一个新的类CAdminUser。例如:
```php
class CAdminWebUser extends CWebUser
{
public $loginUrl = array('admin/admin/login');
}
```我们需要把它放置在components中。如果是在全局应用中使用,我们需要通过protected/config/main.php的components小节进行设置。如果在模块中使用,则在模块类的init方法中添加相关代码。
编程语言
- 在yii中新增一个用户验证的方法详解
- jQuery ajax+PHP实现的级联下拉列表框功能示例
- SQL语句优化方法30例(推荐)
- 浅谈数据库优化方案
- 实现easyui的datagrid导出为excel的示例代码
- angularJs中$scope数据序列化的实例
- 详解jQuery中的元素的属性和相关操作
- angularJS自定义directive之带参方法传递详解
- 基于PHP读取csv文件内容的详解
- 简单介绍JavaScript数据类型之隐式类型转换
- 正则表达式判断所填入号码的运营商js代码修改版
- PHP-FPM实现性能优化
- javascript中attachEvent用法实例分析
- jQuery实现可编辑的表格实例讲解(2)
- React通过父组件传递类名给子组件的实现方法
- Laravel5.5 数据库迁移-创建表与修改表示例