【问题标题】:Laravel 5.3 - Authentication is brokenLaravel 5.3 - 身份验证被破坏
【发布时间】:2017-10-17 11:44:02
【问题描述】:

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

这让我相信身份验证中间件没有正确注册。我不确定正确的路线是什么,所以很乐意提供任何帮助:)

【问题讨论】:

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


    【解决方案1】:

    发生重定向是因为您未通过身份验证,并且您被重定向到 login 路由,因为 app\Exceptions\Handler 类中的 unauthenticated 方法使用以下内容将用户重定向到 /login

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

    因此,您必须创建 /login 路由或将上面的行更改为:

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

    这应该可以工作,并且您的 AuthController::index 方法应该显示登录表单,因为这将命中您的 AuthController 中的 index 方法,因为它是一个资源控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2017-05-25
      • 2017-05-13
      • 2017-06-18
      • 2012-08-22
      • 2017-01-06
      • 2017-01-25
      • 1970-01-01
      相关资源
      最近更新 更多