我的 cookie 会话驱动程序有问题。我需要创建一个仅使用cookie的应用程序。使用我的配置,会话不会在带有cookie驱动程序的Laravel 5.2中持久存在。如果我使用文件会话驱动程序,它可以正常工作。
.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');
}
我该如何解决这个问题?
答案 0 :(得分:0)
只需在laravel中使用<div class="nice-select small payment_type open" tabindex="0">
<span class="current">SELECTED OPTION APPEARS HERE</span>
<ul class="list">
<li data-value="" class="option selected focus">Select a payment type </li>
<li data-value="3" class="option">OPT.1<label class="additional-fee selection"> + € 0.60</label></li>
<li data-value="4" class="option">OPT.2</li>
<li data-value="6" class="option">OPT.3<label class="additional-fee selection"> + € 0.40</label></li>
<li data-value="27" class="option">OPT.4<label class="additional-fee selection"> + € 0.50</label></li>
</ul>
</div>
外墙。
Cookie
永远制作饼干
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