Как настроить маршруты так, чтобы мой спа запускался по пути / admin? - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь создать базовый спа-центр, но я хочу использовать базовую аутентификацию laravel, а не создавать систему входа в систему vue, после входа она перенаправляет меня на маршрут /admin , куда я хочучтобы быть точкой входа в мой спа , попробуйте с этой конфигурацией, и она ничего не показывает.

web.php -> маршрутизация

Route::get('/admin/{any}',function(){
    return view('app');
})->where('any','.*')->name('admin')->middleware('auth');

Route::get('/admin',function(){
    return view('app');
})->name('admin')->middleware('auth');


Route::get('/', 'Auth\LoginController@showLoginForm')->name('showLoginForm');
Route::post('login', 'Auth\LoginController@login')->name('login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

в моемпредставление приложения, у меня есть файл приложения, скомпилированный со следующими маршрутами

const routes = [

    {
        path: '/admin',
        component: () => import(/* webpackChunkName: "routes" */`~/Pages/Layouts/Admin`), 
        meta: { requiresAuth: true },
        children: [
            {
                path : '/', name : 'Home',
                component: () => import(/* webpackChunkName: "routes" */`~/Pages/Admin/Home`),
                meta: { },
            },
            { 
                path : 'usuarios',
                component: () => import(/* webpackChunkName: "routes" */`~/Pages/Admin/Usuarios/Index`),
                meta: { },
                children : [
                    {

                    }
                ]
            },

            { 
                path: '403',
                name:'403', 
                component: () => import(/* webpackChunkName: "routes" */`~/Pages/Errors/403`)
            },
        ]
    },

]

export default routes;

маршруты, которые я ищу, например misite.com/admin/users, конечно, пользователи пути будут маршрутом моего vueRouter

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Вы можете попробовать это в файле web.php.

Route::any('/admin/{all}', function () {
    if ( ! Auth::user() ){
    return redirect('/login');
    }
    return view('admin'); //SPA app
})
->where(['all' => '.*']);

Кроме того, в ваших маршрутах Vue вам необходимо использовать точку входа вашего URL /admin в указанном пути.Это всего лишь пример перехода на панель инструментов, например /admin/dashboard

const routes = [
    {
        path: "/admin/dashboard",
        component: Dashboard,
        name: "dashboard",
        meta: {
            title: "Dashboard",
            requiresAuth: true
        }
    }
];
0 голосов
/ 02 июня 2019

Если вы собираетесь перенаправить пользователей после входа в систему с системой auth laravel на /admin путь, просто перейдите на App\Http\Controllers\Auth\LoginController и отредактируйте атрибут $redirectTo следующим образом:

$redirectTo = '/admin'

как упомянуто в документе laravel:

После успешной аутентификации пользователя они будут перенаправлены на URI / home.Вы можете настроить местоположение перенаправления после аутентификации, определив свойство redirectTo в LoginController, RegisterController, ResetPasswordController и VerificationController.

для получения дополнительной информации, пожалуйста, проверьте doc Настройка пути Laravel после входа в систему

...