如何配置路由,以便我的spa在路径/ admin中启动?

时间:2019-06-02 04:42:13

标签: laravel vue.js vue-router

我尝试创建一个基本的spa,但我想使用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 :(得分:0)

如果您要使用auth laravel系统登录后将用户重定向到/admin路径,只需转到App\Http\Controllers\Auth\LoginController并编辑$redirectTo属性,如下所示:

$redirectTo = '/admin'

如laravel文档所述:

  

成功验证用户身份后,他们   将被重定向到/ home URI。您可以自定义   通过定义redirectTo进行身份验证后的重定向位置   属性设置在LoginController,RegisterController,ResetPasswordController和VerificationController上。

有关更多信息,请检查文档Path Customization Laravel after login

答案 1 :(得分:0)

您可以在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
        }
    }
];