Laravel 5.3 - 身份验证被破坏

时间:2017-10-17 11:44:02

标签: php laravel laravel-5 laravel-5.1 laravel-5.3

大约一年前,我们接管了现有的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

这让我相信认证中间件未正确注册。我不确定正确的路线是什么,所以很乐意欣赏任何帮助:)

1 个答案:

答案 0 :(得分:0)

重定向正在发生,因为您未经过身份验证,并且您被重定向到login路由,因为unauthenticated类中的app\Exceptions\Handler方法会使用某些内容将用户重定向到/login像这样:

return redirect()->guest('login');

因此,您要创建/login路线或将上述行更改为:

return redirect()->guest('auth');

这应该有用,您的AuthController::index方法应该会显示登录表单,因为这会触及index中的AuthController方法,因为它是资源控制器。