laravel如何从会话中获取用户ID?

时间:2018-11-24 10:58:59

标签: laravel session

好吧,现在我知道,如果我使用文件驱动程序进行会话,则这些会话将存储在/storage/framework/sessions中,当我回显Session::getId()时,我将获得存储在存储。

当我打开该会话时,它看起来像这样:

a:7:{s:6:"_token";s:40:"hgG3c6DQ5XHEvwK7925CmfGUK54dhFPIWB2kFCUz";s:3:"url";a:0:{}s:9:"_previous";a:1:{s:3:"url";s:27:"http://e-learning.local/p2p";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}s:50:"login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d";i:6;s:3:"key";s:8:"smothing";s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}}
  

这是localhost开发,因此无需担心会发布会话

我很受伤,根本没有用户ID或用户名!,laravel如何从此会话中获取身份验证用户!

要知道用户,需要匹配什么值?

例如Auth::id()从会话中获取用户ID,但如何!如果会话中没有有关用户ID或其他内容的指示符:\

此外,如果我有该用户的会话ID,并且不能使用Auth::id()获取该用户ID(由于我在laravel中使用另一个框架构建另一个应用程序,但事实是,应该具有相同的用户),我可以从会话中获取用户吗?

1 个答案:

答案 0 :(得分:0)

在我的应用程序中,我找到了user_id作为此动态密钥“ login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d”的值列出了

这是我运行时获取所有用户的会话并确定其会话ID以及用户ID的方法:

        foreach (glob(base_path()."/storage/framework/sessions/*") as $filename) {
            foreach (unserialize( file_get_contents($filename) ) as $key => $value) {
                if(substr_count($key, 'login_web') > 0){
                    echo "Session ID: " . basename($filename) . " - User ID: ".$value."<br>";
                }
            }
        }