我正在使用内部API在Laravel中进行身份验证,并且创建了一个中间件来测试用户是否使用会话登录。中间件可以重定向到登录路由,但是一直尝试重定向,直到看到 ERR_TOO_MANY_REDIRECTS 。这是我第一次使用不同的身份验证方式,删除了以前使用的 guest 和 auth 中间件。
这是我的路线:
Route::get('/login', 'ApiController@index')->name('login')->middleware('psa');
Route::post('/logout', 'ApiController@destroy')->name('logout');
Route::post('/auth', 'ApiController@login')->name('psaAuth');
中间件:
public function handle($request, Closure $next)
{
if(! $request->session()->exists('login')){
return redirect('/login');
}else{
return redirect('/');
}
return $next($request);
}
有任何想法为什么会这样?
答案 0 :(得分:1)
由于您仅将psa
的中间件应用于/login
,因此您的代码应类似于以下内容
public function handle($request, Closure $next)
{
if($request->session()->exists('login')){
return redirect('/');
// If session exist, take him to home page
}
// Else let him stay in the login page for login.
return $next($request);
}