Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架。
Yii是一个基于组件、用于开发大型 Web 应用的 高性能 PHP 框架。Yii 几乎拥有了所有的特性 ,包括 MVC、DAO/ActiveRecord、I18N/L10N、caching、基于 JQuery 的 AJAX 支持、用户认证和基于角色的访问控制、脚手架、输入验证、部件、事件、主题化以及 Web 服务等等。Yii 采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性。
现在我将介绍一下Yii的登陆验证功能:
Yii用户登陆的流程:
解析url:http://localhost/yiiblog/index.php?r=site/login
找到 SiteController.php下actionLogin方法;
然后渲染视图文件,显示登陆页面;
提交登陆信息后,页面调用UserIdentity.php来实现用户登陆验证。
以下是UserIdentity类文件的验证函数:
class UserIdentity extends CUserIdentity { public function authenticate() { $users=array( // username => password 'demo'=>'demo', 'admin'=>'admin', ); if(!isset($users[$this->username])) $this->errorCode=self::ERROR_USERNAME_INVALID; else if($users[$this->username]!==$this->password) $this->errorCode=self::ERROR_PASSWORD_INVALID; else $this->errorCode=self::ERROR_NONE; return !$this->errorCode; } }
UserIdentity继承了CUserIdentity类(位于framework/web/auth下)
Yii通过LoginForm类来调用UserIdentity验证登陆信息,并且通过Yii::app()->user(CWebUser的实例:位于framework/web/auth下)来实现并存储登陆信息。以后我们可以通过Yii::app()->user来访问用户相关信息。