0

我有一个奇怪的问题。我在 Yii 中构建了一个 Web 应用程序。

每当我从应用程序注销时,用户就会返回到主页。但是,如果我刷新页面。用户再次登录。

这是配置文件

'session' => array(
       'class'=>'CDbHttpSession',
        'timeout'=>$params['session_timeout'],
        'autoStart'=>true,
    ),

这是我的注销代码

    Yii::app()->session->clear();
    Yii::app()->session->destroy();
    Yii::app()->cache->flush();
    Yii::app()->user->logout();

最近我注意到运行时文件夹中有一个名为 session-1.1.8 的文件。它不会在注销时被删除。但是,如果我手动删除它,那么用户将永久注销。

所以我的问题是

1)我在这里做错了什么吗?

2)这个“session-1.1.8”文件是什么?

3)我怎样才能永久注销?

4

2 回答 2

1

来自 Yii 文档:

默认情况下,它将使用应用程序运行时目录下名为“session-YiiVersion.db”的 SQLite3 数据库。您还可以指定 connectionID 以便它使用 DB 应用程序组件来访问数据库。

那是文件的来源,尝试使用您自己的db组件,这应该可以解决。

Yii::app()->user->logout();已经调用Yii::app()->getSession()->destroy();,因此您无需手动进行。

于 2013-10-20T14:26:39.410 回答
0

我使用这套并且变得非常好:

'cache'=>array(
   'class' => 'CFileCache', 
),

'session' => array(
   'class' => 'CDbHttpSession',
   'timeout' => 60*60*24*30*12*5, 
),  

60*60*24*30*12*5 = 60 秒、60 分钟、24 小时、30 天、12 个月、5 年

于 2015-02-09T07:53:30.200 回答