Ладно, во-первых, Bruuuhhhh been there and done that
Хорошо, давайте начнем. вы хотите, чтобы, если уже есть сеанс с store_id
, вы хотите, чтобы пользователь перенаправлял или отправлял обратно.
В вашем контроллере добавьте это
public function initiate()
{
if(session()->has('store_id'))
{
//What ever your logic
}
else
{
redirect()->to('/store')->withErrors(['check' => "You have session activated for here!."]);
}
}
Скорее всего, вам будет интересно, что пользователь может просто перейти по другому URL-адресу после /store/other-urls
Да, он может.
Чтобы избежать этого. Добавьте пользовательское middleware
php artisan make:middleware SessionOfStore //You can name it anything.
В этом промежуточном программном обеспечении
public function handle($request, Closure $next)
{
if($request->session()->has('store_id'))
{
return $next($request);
}
else
{
return redirect()->back()->withErrors(['privilege_check' => "You are not privileged to go there!."]);
}
return '/home';
}
на главной странице вашего магазина. Добавьте anchor tag
<a href="/stop">Stop Service</a>
Теперь в вашем web.php
Route::group(['middleware' => 'SessionOfStore'], function()
{
//Add your routes here.
Route::get('/stop', 'StoreController@flushSession');
});
Теперь вы ограничили доступ к URL-адресам и проверили сеансы.
Сейчас в
public function flushSession()
{
//empty out the session and
return redirect()->to('/home');
}
20.02.2017