我是laravel的新手。我在登录成功后设置了会话(登录链接:http://www.example.com/login)。现在我在个人资料页面。 - > http://www.example.com/customer/account/profile。 当我在配置文件页面中打印会话时,我获得了用户(客户)的会话值。但是当我直接将URL更改为登录页面(http://www.example.com/login)而没有会话销毁并在登录页面中打印会话值时,它会在登录页面上显示空数组。
在routes / web.php文件中:
Route::get('/login','LoginController@index');
Route::post('/login/chklogin','LoginController@chkLogin');
Route::group(['prefix' => 'customer', 'middleware' => 'customer' ], function()
{
Route::get('customer/dashboard','customer\DashboardController@index');
Route::get('customer/account/profile','customer\account\ProfileController@index');
Route::post('/account/profile/update','customer\account\ProfileController@update');
});
在客户中间件中:
public function handle($request, Closure $next)
{
if(!session()->get('customerLoggedIn')) {
return redirect('/login');
}
else
{
return $next($request);
}
}
我想在中间件或任何控制器的构造函数中添加类似的内容。
public function handle($request, Closure $next)
{
// if session not set for customer then redirect to login page
// if session set for customer then redirect to profile page
}
我想设置功能,虽然我将url更改为登录页面(http://www.example.com/login),但如果我的会话未被销毁,那么它应该重定向到个人资料页面(http://www.example.com/customer/account/profile)。但它不起作用。我们将不胜感激。
提前致谢!
答案 0 :(得分:0)
可能LoginController
的{{1}}方法正在破坏会话。为我防止数据损坏是有道理的。
无论如何,你不需要那种由index
中间件处理的中间件
auth