我正在login
和logout
中实施Yii
和Ext JS
功能。到目前为止,我想我已经做到了。但我也希望维护一个会话,以便当用户刷新ExtJS
页面时,如果用户仍然登录,我希望保留在当前页面上,如果时间过去,用户将再次注销。
注意: 我正在使用ajax请求登录和注销
我试过阅读文章,但没弄明白该怎么做
http://www.yiiframework.com/forum/index.php?/topic/12124-how-to-implement-session-timeout/
我是yii的新手所以任何人都可以建议我如何实现此功能。
到目前为止,我已在config.php文件中启用它
'session' => array (
'class' => 'system.web.CDbHttpSession',
'connectionID' => 'db',
'sessionTableName' => 'sessions',
),
答案 0 :(得分:3)
在Yii"记得我"功能是通过可以与extjs一起使用的cookie实现的。因此,登录时您应该执行以下操作:
$identity = new UserIdentity($this->username, $this->password);
if ($identity->authenticate() && $identity->errorCode === UserIdentity::ERROR_NONE) {
$duration = 3600*24*30; // 30 days
Yii::app()->user->login($this->_identity, $duration); // <----- here!
}
很可能你已经在某处使用Yii::app()->user->login
所以找到它并添加第二个参数。
答案 1 :(得分:2)
我在Yii中实现了自定义登录,我唯一要做的就是&#34;告诉&#34;到有人登录的应用程序。
$identity = new UserIdentity("login","pwd");
// Check auth...
// ...
// if logging successful :
Yii::app()->user->login($identity,3600);