Laravel 5.3 - 身份验证已中断



大约一年前,我们接管了现有的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方法,因为它是资源控制器。

最新更新