Revision #3 has been created by qiang on Feb 10, 2009, 4:33:19 PM with the memo:
Removed getter and setter for lastLoginTime
« previous (#2) next (#4) »
How to add more information to Yii::app()->user
By default, the expression Yii::app()->user returns a [CWebUser] [application component](http://www.yiiframework.com/doc/guide/basics.application#application-component) which
can be used to stor
e information that are closely related with the current user
be persistent throughout the current user session. [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|IUserIdentity] 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).
public function getLastLoginTime()
public function setLastLoginTime($value)
In the above we define a `lastLoginTime` property with getter/setter methods. We also override the
Id()` method to return a private variable. The reason that the `id` property is not defined like
`lastLoginTime` is because `id` is a pre-defined property
in [CUserIdentity] and
is recognized by [CWebUser]. If we
need to add
more information, we should
follow the way of defining `lastLoginTime`.
In the `authenticate()` method, we retrieve the user record according to the provided username. We populate th
and `lastLoginTime` properties if we find such a user record whose password matches the provided password (meaning successful authentication).
That's all we need. Now if we want to retrieve the `id` or `lastLoginTime` information in our code, we can do the following:
starting from 1.0.3 you can
use the following:
> 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.