【发布时间】:2020-02-19 16:17:36
【问题描述】:
我正在使用内部 API 在 Laravel 中进行身份验证,并且我创建了一个中间件来测试用户是否使用 session.log 登录。中间件在重定向到登录路由时工作,但它一直在尝试重定向,直到我看到 ERR_TOO_MANY_REDIRECTS。这是我第一次使用不同的方式进行身份验证,我删除了我之前使用的 de 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);
}
任何想法为什么会发生这种情况?
【问题讨论】:
-
您可以检查位于 storage/logs/laravel*.log 中的日志文件,看看是否有任何错误。还提供控制器方法体以获得帮助
-
您的中间件用于路由
/login,如果登录会话不存在,您将再次重定向它,这显然是一个循环。