大约一年前,我们接管了现有的Laravel 5.1站点并升级到5.3 - 我们最近意识到作为旧站点一部分的管理面板不再工作(或无法进行身份验证)。
原始路由文件包含以下内容:
//Login
Route::controllers([
'auth' => 'AuthAuthController',
'password' => 'AuthPasswordController',
]);
//Admin
//Dashboard
Route::group(array('prefix' => 'admin', 'middleware' => 'auth'), function() {
//Dashboard
Route::get('/webadmin', array('as' => 'dashboard', 'uses' => 'AdminDashboardController@index'));
});
据我了解,升级后停止工作 路由::控制器方法已折旧。我们将其更改为以下内容,据我了解这是替换:
//Login
Route::resource('password','AuthPasswordController');
Route::resource('auth','AuthLoginController');
//Admin
//Dashboard
Route::group(array('prefix' => 'admin', 'middleware' => 'auth'), function() {
//Dashboard
Route::get('/webadmin', array('as' => 'dashboard', 'uses' => 'AdminDashboardController@index'));
});
但是,当我们通过 example.com/admin/webadmin 访问站点管理面板时,我们会自动重定向到 example.com/login 然后显示编译的可怕的NotFoundHttpException.php
这让我相信身份验证中间件未正确注册。我不确定正确的路线是什么,所以很乐意:)任何帮助
重定向之所以发生,是因为您未通过身份验证,并且您被重定向到路由login
因为 appExceptionsHandler
类中的 unauthenticated
方法使用如下所示的内容将用户重定向到/login
:
return redirect()->guest('login');
因此,您必须创建一条/login
路由或将上面的行更改为:
return redirect()->guest('auth');
这应该有效,并且您的AuthController::index
方法应显示登录表单,因为这将命中AuthController
中的index
方法,因为它是资源控制器。