好吧,现在我知道,如果我使用文件驱动程序进行会话,则这些会话将存储在/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中使用另一个框架构建另一个应用程序,但事实是,应该具有相同的用户),我可以从会话中获取用户吗?
答案 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>";
}
}
}