Yii框架登录验证和全局访问用户ID
2013-01-01 19:39
441 查看
Yii 有一个内置的验证/授权(auth)框架,用起来很方便,还能对其进行自定义,使其符合特殊的需求。
Yii auth 框架的核心是一个预定义的 用户(user)应用组件 它是一个实现了
IWebUser 接口的对象。此用户组件代表当前用户的持久性认证信息。我们可以通过
使用此用户组件,我们可以通过
CWebUser::isGuest 检查检查一个用户是否登陆; 可以
登录(login) 或
注销(logout) 一个用户;我们可以通过CWebUser::checkAccess检查此用户是否可以执行特定的操作;还可以获取此用户的唯一标识(unique identifier)及其他持久性身份信息。
为了验证一个用户,我们定义一个有验证逻辑的身份类。这个身份类实现IUserIdentity 接口。
不同的类可能实现不同的验证方式(例如:OpenID,LDAP)。最好是继承
CUserIdentity,此类是居于用户名和密码的验证方式。
定义身份类的主要工作是实现IUserIdentity::authenticate方法。在用户会话中根据需要,身份类可能需要定义别的身份信息。
下面是个例子:
注意:Yii默认的代码,Yii::app()->user->id返回的不是我们想要的用户ID,而是用户名。因此在useridentity类中要用一个变量来存储登录用户的ID,然后重载getID()方法,返回正确的用户ID。
Yii auth 框架的核心是一个预定义的 用户(user)应用组件 它是一个实现了
IWebUser 接口的对象。此用户组件代表当前用户的持久性认证信息。我们可以通过
Yii::app()->user在任何地方访问它。
使用此用户组件,我们可以通过
CWebUser::isGuest 检查检查一个用户是否登陆; 可以
登录(login) 或
注销(logout) 一个用户;我们可以通过CWebUser::checkAccess检查此用户是否可以执行特定的操作;还可以获取此用户的唯一标识(unique identifier)及其他持久性身份信息。
为了验证一个用户,我们定义一个有验证逻辑的身份类。这个身份类实现IUserIdentity 接口。
不同的类可能实现不同的验证方式(例如:OpenID,LDAP)。最好是继承
CUserIdentity,此类是居于用户名和密码的验证方式。
定义身份类的主要工作是实现IUserIdentity::authenticate方法。在用户会话中根据需要,身份类可能需要定义别的身份信息。
下面是个例子:
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; } }
注意:Yii默认的代码,Yii::app()->user->id返回的不是我们想要的用户ID,而是用户名。因此在useridentity类中要用一个变量来存储登录用户的ID,然后重载getID()方法,返回正确的用户ID。
相关文章推荐
- Yii登录验证和全局访问用户ID
- Yii登录验证和全局访问用户ID
- Yii登录验证和全局访问用户ID
- Yii登录验证和全局访问用户ID
- 事件ID 18456:用户<域\计算机名>登录失败。 原因: 基于令牌的服务器访问验证失败,出现基础结构错误
- 学习 解决用户验证、单点登录、api访问控制的开源框架 的 十月 第一弹:
- Yii 用户登录验证
- csrf攻击过程 csrf攻击说明 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站
- spring boot配置shiro安全框架及用户登录权限验证实现
- 从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程
- 5.shiro用户授权、登录验证的基本框架
- shiro框架---关于用户登录和权限验证功能的实现步骤(二)
- 用户 'IIS APPPOOL\admin' 登录失败。 原因: 基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误
- 如何在ASP.NET中使用验证通过的Windows Live ID用户登录网站
- shiro框架---关于用户登录和权限验证功能的实现步骤(四)
- 在登录页面中js进行正则验证电话号码和邮箱地址,并使用ajax进行用户ID的数据库验证
- shiro框架---关于用户登录和权限验证功能的实现步骤(三)
- Yii用户登录信息。获取用户ID