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