laravel - 打开 vue 路由链接时跳过登录屏幕
问题描述
我在我的应用程序中使用 laravel 和 vue js。当我使用 laravel auth 时,所有的 vue 路由在打开时都要求登录。我想创建一些无需用户登录即可访问的路由。换句话说,我想要一些访客用户也可以访问的路由。但目前所有路由都需要对用户进行身份验证。这些是我的路线
const routes = [
{ path: '/dashboard_admin', component: require('./components/dashboard.vue').default},
{ path: '/ongoing_events_admin', component: require('./components/events.vue').default } ,
{ path: '/courses_admin', component: require('./components/courses.vue').default},
{ path: '/front_images_admin', component: require('./components/front_images.vue').default},
{ path: '/news_admin', component: require('./components/news.vue').default},
{ path: '/main', component: require('./components/main_view/index_view_general.vue') ,
name: 'index',
props: true ,
beforeEnter:DontrequireLogin
},
//general vue
// { path: '/', component: require('./components/main_view/index_view_general.vue').default},
]
const router = new VueRouter({
mode: 'history',
routes // short for `routes: routes`
})
const app = new Vue({
el: '#app',
router
});
这些是我的路线。我希望其中一些路由也可以由访客用户访问,但目前所有路由都需要用户登录。
解决方案
所以你需要做这个元的,更多关于这个你可以阅读它的官方文档Route Meta
让我稍微解释一下 meta 的作用。
在元中,您定义了一个布尔对象,该对象指示,此路由用于经过身份验证的用户或访客用户。让我们看看下面的例子。
我有经过身份验证的路由,仅适用于经过身份验证的用户。
{path: '/account-setting',component:accountSetting,meta:{auth:true}},
所以我在 meta 中传递 auth 对象并在 route.beforeach 中决定如何处理这条路线。
和正常路线一样
{path: '/about',component:about}
在此我不提供元数据,这意味着它适用于所有用户。
阅读文档以了解如何使用它。