Laravel 5.1 会话不工作

Laravel 5.1 Sessions not working

我有新鲜的 Laravel 5.1 分发。 我开始的第一件事是扩展 Guard class 以实现我自己的身份验证驱动程序。我真的是 Laravel 的新手。所以,这是我到目前为止所做的。

config/auth.php

'driver' => 'crm',

Providers/AuthServiceProvider.php

   public function boot(GateContract $gate)
    {
        Auth::extend(
            'crm',
            function ($app) {
                $model = $app['config']['auth.model'];
                $provider = new EloquentUserProvider($app['hash'], $model);

                return new CrmGuard($provider, $app->make('session.store'));
            }
        );
    }

目前,我已经有一个用户 ID,存储在会话数组中,我可以通过

访问它
session_start();
$_SESSION['user_id'];

但我想在会话管理中使用 Laravel 构建。 我正在尝试在我的 CrmGuard class 中重写 Guard class 的 user 方法,我需要从会话中获取这些值,我正在尝试这样

$id = $this->session->get('user_id');

等等

session('user_id')

这是我在测试时尝试调用 user 方法的方式

Route::get('/', function () {
    \Illuminate\Support\Facades\Auth::user();
   //return view('welcome');
});

但是它总是returnNULL,我做错了什么?谢谢。

Laravel 的会话驱动程序与 PHP 会话有一点不同,因此它不会以这种方式工作:

session_start();
$_SESSION['user_id'];

默认情况下(您可以更改此驱动程序)它存储在文件(服务器端)中,并且只是公开(向客户端)请求。不要使用 PHP 会话,而是将 Laravel 的会话内置驱动程序与 \Session::get()Session::put() 一起使用,您可以在此处阅读:

https://laravel.com/docs/5.1/session