Php Laravel“会话表列”是什么;有效载荷;包含,以及如何访问此数据?

Php Laravel“会话表列”是什么;有效载荷;包含,以及如何访问此数据?,php,laravel,session,Php,Laravel,Session,我从本地会话表中获取了唯一的值,它是我,我是唯一登录的用户 $data = DB::table('sessions')->get(); 如果我返回base64_解码的有效负载: return base64_decode($data[0]->payload); 我得到了加密的json a:5:{s:6:"_token";s:40:"IlIvr7p3qxeMRg0NxSaITHvIZ1c2HGCh5QSj8wIG";s:9:"_previous";a:1:{s:3:"url

我从本地会话表中获取了唯一的值,它是我,我是唯一登录的用户

$data = DB::table('sessions')->get();
如果我返回base64_解码的有效负载:

    return  base64_decode($data[0]->payload);

我得到了加密的json

a:5:{s:6:"_token";s:40:"IlIvr7p3qxeMRg0NxSaITHvIZ1c2HGCh5QSj8wIG";s:9:"_previous";a:1:{s:3:"url";s:28:"http://mytestsite.dev/index.php";}s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}s:8:"class_id";s:2:"14";s:9:"_sf2_meta";a:3:{s:1:"u";i:1453341204;s:1:"c";i:1453331047;s:1:"l";s:1:"0";}}
是否有一种安全的方法来解密此JSON,以使用Laravels方法检索用户id

经进一步调查,会话表可能不包含用户信息,它只是用于与浏览器cookie匹配

如果是这种情况,我的最终问题是如何合理地确定当前登录的用户,而无需在每次页面加载时不断在用户记录上创建更新/插入,如下所示:

_________________________更新

我进一步研究发现浏览器中的cookie是会话记录的加密id

        return Crypt::decrypt($cookie);

剩下最后一个问题,有效载荷列包含什么?

好的,看来Laravel 5.2解决了这个问题

Schema::create('sessions', function ($table) {
    $table->string('id')->unique();
    $table->integer('user_id')->nullable();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->text('payload');
    $table->integer('last_activity');
});

在获得有效负载后使用它,它将向您显示json对象

print_r(unserialize(base64_decode($datas->payload))); 
dd(unserialize(base64_decode($datas->payload)));

. 似乎是这样的,“我得到的是加密的json。”这是您试图在您提供的UBJSON数据中的任何位置接收的用户id吗?我相信是的,还有其他数据。似乎需要对认证过程进行反向工程。我找到了这个,但我觉得它过时了。为什么不在的用户登录表中添加一列,并在用户每次登录时更新它?