在yii和extjs中实现会话

时间:2014-06-14 06:38:24

标签: php extjs yii

我正在loginlogout中实施YiiExt 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',
),

2 个答案:

答案 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);