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来访问用户相关信息。