【发布时间】: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