我正在验证我的用户并将他重定向到仪表板,如果凭据正确。我想确保仪表板路由并添加中间件身份验证,但现在它总是重定向到登录页面。Laravel 5中间件身份验证总是失败并重定向到登录
routes.php文件
Route::get('login', array('uses' => '[email protected]'));
Route::post('login', array('uses' => '[email protected]'));
Route::get('logout', array('uses' => '[email protected]'));
Route::group(['middleware' => 'auth'], function() {
Route::get('/', function() {
return view('dashboard');
});
Route::get('dashboard', function() {
return view('dashboard');
});
});
HomeController.php
public function showLogin(){
return View::make('login');
}
public function doLogin(Request $request){
$rules = array(
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
);
$validator = Validator::make($request::all(), $rules);
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
->withRequest($request::except('password'));
}
else {
$userdata = array(
'email' => $request::get('email'),
'password' => $request::get('password')
/*'password' => Hash::make($request::get('password'))*/
);
if (Auth::attempt($userdata)) {
$userid = Auth::id();
return redirect()->intended('/');
} else {
return Redirect::to('login');
}
}
}
public function doLogout()
{
Auth::logout();
return Redirect::to('login');
}
中间件Authenticate.php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
中间件RedirectIfAut henticated.php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/');
}
return $next($request);
}
看起来像你的会议不持久。您可以在重定向之前通过dd(Auth :: attempt($ userdata))确认。如果值是真的,那么你的会话不能正常工作 – astroanu
我返回dd(Auth :: attempt($ userdata)) - 它给出真正的。我该怎么做才能纠正它 –
搜索“laravel会话不会持续”在谷歌 – astroanu