【问题标题】:Laravel 5.2 session cookie driverLaravel 5.2 会话 cookie 驱动程序
【发布时间】:2017-06-02 13:03:48
【问题描述】:

我的 cookie 会话驱动程序有问题。我需要创建一个只使用 cookie 的应用程序。使用我的配置,会话不会在带有 cookie 驱动程序的 Laravel 5.2 中持续存在。如果我使用 file 会话驱动程序,它可以工作。

.env 文件:

SESSION_DRIVER=cookie

我还创建了一个中间件,用于检查自定义会话值是否存在(仅handle() 函数):

public function handle($request, Closure $next)
{
    //dd(session('auth')) // null
    if (!session('auth')) {
        if ($request->ajax() || $request->wantsJson()) {
            return response('Unauthorized.', 401);
        } else {
            return redirect('/');
        }
    }

    return $next($request);
}

我在app/Http/Kernel.php中的$routeMiddleware数组中添加了中间件:

'cookies' => \App\Http\Middleware\CheckCookies::class,

我的路线是:

Route::group(['middleware' => ['web']], function () {
    Route::get('/', 'LoginController@index');
    Route::post('login', 'LoginController@login');

    Route::group(['middleware' => 'cookies'], function () {
        Route::get('home','HomeController@index');
        Route::get('logout','HomeController@logout');
    });
});

这是我的LoginController@login 方法:

public function login()
{
    session([
        'auth' => ['name' => 'John Doe']
    ]);

    return redirect('/home');
}

我该如何解决这个问题?

【问题讨论】:

    标签: laravel-5.2 session-cookies


    【解决方案1】:

    只需在 laravel 中使用 Cookie Facades。

    Cookie::queue('key', 'value', $minutes);
    

    永远做饼干

    Cookie::forever('key', 'value');
    

    修改您的代码并尝试一下。

    LoginController@login

    public function login(){
        $cookieValue=json_encode(array('name'=>'John Dow'));
        Cookie::queue('auth', $cookieValue, 60);
        return redirect('/home');
    }
    

    CheckCookies中间件

    public function handle($request, Closure $next){
    
            if (!Cookie::get('auth'))
            if ($request->ajax() || $request->wantsJson()) {
                        return response('Unauthorized.', 401);
            } else {
                        return redirect('/');
            }
            return $next($request);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-30
      • 2013-06-08
      • 2017-05-13
      • 2021-12-01
      • 2016-03-06
      • 2016-09-09
      • 2016-09-15
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多