Laravel 5.6中多重身份验证的路由问题

时间:2019-03-01 15:34:25

标签: php laravel

我正在尝试将我的前端和后端都放在同一个Laravel应用中。基本上,如果将/ admin附加到URL,则可以访问后端。我有一个用于后端控制器的“后端”文件夹和一个用于前端控制器的“前端”文件夹。在它们每个内部,我都复制了完整的Auth控制器,并更改了名称空间并进行了相应的查看。

来自后端的身份验证非常有效。但是从前端开始,“登录”路径将转到后端登录,这不应该发生。

我的web.php文件:

Route::get('/', function () {
    return view('front.auth.login');
})->name('site_home');


Auth::routes();
Route::group(['middleware' => ['auth']], function () {
    Route::get('/', 'HomeController@index')->name('site_home');
});

我为后端路由创建的另一个文件(称为backend.php)

Auth::routes();

Route::post('password/reset', 'Auth\ResetPasswordController@reset');

Route::group(['middleware' => ['auth', 'is_admin']], function () {
    Route::get('/', 'AdminController@index')->name('home');
});

最后在RouteServiceProvide.php中,我具有此功能来映射路线:

protected function mapWebRoutes()
{
    Route::middleware('web')
         ->namespace('App\Http\Controllers\Front')
         ->group(base_path('routes/web.php'));

    Route::middleware('web')
        ->namespace('App\Http\Controllers\Back')
        ->prefix('admin')
        ->group(base_path('routes/backend.php'));
}

我猜想auth路由之间存在一些冲突,因此我首先想到的是两个路由文件都已加载,并且我只希望加载其中的一个,具体取决于上下文(是否在URL中使用admin) 。我尝试了几种基于多重身份验证问题的解决方案,但是它们并不能帮助解决我的问题,有时会使管理路由变得有些混乱,变成admin / admin。

我已经有点用过Laravel了,但是对我来说这有点偏离了人迹罕至的地方。任何帮助表示赞赏。

0 个答案:

没有答案