Php Laravel 5.2中间件身份验证不断将我重定向到登录页面
我正试图用Laravel5.2构建一个简单的管理仪表板,并创建了一个管理中间件,其中包括“web”和“auth”中间件 在my kernel.php文件中:Php Laravel 5.2中间件身份验证不断将我重定向到登录页面,php,url-routing,laravel-routing,middleware,laravel-5.2,Php,Url Routing,Laravel Routing,Middleware,Laravel 5.2,我正试图用Laravel5.2构建一个简单的管理仪表板,并创建了一个管理中间件,其中包括“web”和“auth”中间件 在my kernel.php文件中: protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::cla
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
'admin' => [
'web',
'auth',
]
];
在我的路线中,我为我的管理路线创建了一个组。代码如下:
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function({
Route::get('/', [
'as' => 'admin',
'middleware' => 'admin',
'uses' => 'LoginController@dashboard',
]);
Route::get('/login', [
'as' => 'login',
'uses' => 'LoginController@login'
]);
Route::post('/login', [
'as' => 'post_login',
'uses' => 'LoginController@authenticate'
]);
});
登录控制器:
class LoginController extends Controller
{
public function dashboard()
{
return 'hey';
}
public function login()
{
return view('admin.login');
}
public function authenticate()
{
$requestData = request()->all();
$email = $requestData['email'];
$password = $requestData['password'];
if (Auth::attempt(['email' => $email, 'password' => $password])) {
return redirect()->intended('admin');
}
}
}
以及中间件:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('admin/login');
}
}
return $next($request);
}
现在的问题是,如果将我的“管理”中间件添加到路由组,我会得到“太多重定向循环”,如果我只在管理根路由上使用它,就像代码中显示的那样,我总是重定向到登录视图。即使在对用户进行身份验证之后,我也总是通过中间件。从文档中我了解到,在用户凭据检查之后,我应该被重定向到我最初尝试访问的url,而不需要再次通过中间件
有人能告诉我我错过了什么吗
提前谢谢 我不认为你们可以像这样把中间商集团也包括进来你们是什么意思?我可以创建一个使用auth和web中间件的管理中间件。但是,如果我在我的路径中使用了“auth”中间件,而不是我创建的中间件,我会遇到同样的问题,所以我认为这不是问题所在。