旧会话未使用Session :: regenerate刷新

时间:2017-01-05 08:00:15

标签: php laravel session

我需要一些关于Laravel如何缓存会话的信息。

我正在使用基于文件的Laravel会话。

情景:

  1. 运行一次网络以在存储/框架/会话中创建会话。
  2. 在Session中加入一些值。
  3. 从存储/框架/会话中删除该物理会话文件。
  4. 刷新网站,查看一个新的物理文件,其中包含重新创建的精确会话ID文件名,以及上一个会话中恢复到此新文件的所有数据。
  5. 我的问题是,Laravel在哪里存储会话数据?如何有效地擦除会话数据,以便即使是使用相同文件名重新创建的全新物理会话文件也不会恢复旧数据。

    上述问题已得到解决。

    出现另一个问题,在代码下面运行:

    Session::forget('member');
    Session::flush();
    Session::regenerate();
    

    旧会议根本没有冲洗,所有数据仍然存在。但新生成的会话开始新鲜。

    如何在转移到新会话之前真正刷新旧会话?

2 个答案:

答案 0 :(得分:0)

在默认设置下,会话存储在默认数据库连接中名为“sessions”的表中

摧毁它

答案 1 :(得分:0)

以下是在旧会话中保留新数据的正确方法:

Session::forget('member');
Session::flush();
Session::save(); // trigger save to old session

Session::regenerate(true); // pass true to regenerate would delete the old session file.