Changes
Title
unchanged
How to add more information to Yii::app()->user
Category
unchanged
Tutorials
Yii version
unchanged
Tags
changed
CWebUser, authentication
Content
changed
By default, the expression Yii::app()->user returns a [CWebUser] [application component](http://www.yiiframework.com/doc/guide/basics.application#application-component) which represents the information that are closely related with the current user. Some information can be persistent throughout the current user session. For example, [CWebUser] already comes with a [name|CWebUser::name] property that stores the username of the current user.
In order to store more information, we need to modify the [identity|
ICUserIdentity] class used together with [CWebUser]. Each application may have one or several identity classes which are mainly responsible to provide ways of performing user [authentication](http://www.yiiframework.com/doc/guide/topics.auth).
Here we use the `UserIdentity` class included in the `testdrive` application as an example, assuming our goal is to add the ID and the last login time of the user to [CWebUser]. We would modify `UserIdentity` as follows,[...]
$id=Yii::app()->user->id;
$lastLoginTime=Yii::app()->user->lastLoginTime;
// If you are using version 1.0.2 or earlier, you should use the following:
// $lastLoginTime=Yii::app()->user->getState('lastLoginTime');
```
> Note: When cookie-based authentication is enabled (by setting [CWebUser::allowAutoLogin] to be true), these persistent information will be stored in cookie. Therefore, you should NOT store sensitive information (e.g. password) like we do in the above.[...]
**Related article**
The method explained above stores the user data into session or cookies when the user authenticates, there is another method of retrieveing user information from database directly:
[Add information to Yii::app()->user by extending CWebUser](http://www.yiiframework.com/doc/cookbook/60/)