从vue路由器中vuex-oidc排除路径

xqnpmsa8  于 2022-11-25  发布在  Vue.js
关注(0)|答案(1)|浏览(247)

我使用下面的代码来创建我的vue应用程序路由和vuex-oidcvuexOidcCreateRouterMiddleware来保护它们。
我的路由不仅在这个文件中。我在App.vue中使用axios从api终结点获取其他路由,并将它们添加到使用this.$router.addRoute()的路由中
加载这些额外路由时,beforeEach将vuex-oidc应用于所有路由。
到目前为止,一切都很完美。
我的问题是
我需要排除"Welcome"路由,这样vuex-oidc就不会应用到它。这样,所有访问者都可以访问它,而不仅仅是登录用户。

如何编辑以下行以排除欢迎路线?

router.beforeEach(vuexOidcCreateRouterMiddleware(store, 'oidcStore'))

或任何其他解决方案。

谢谢

import { createRouter, createWebHistory } from 'vue-router'
import { vuexOidcCreateRouterMiddleware } from 'vuex-oidc'
import store from '@/store'
const routes = [
    {
        path: process.env.BASE_URL + 'oidc-callback',
        name: 'OidcCallback',
        component: () => import(/* webpackChunkName: "OidcCallback" */ '../views/OidcCallback.vue')
    },
    {
        path: process.env.BASE_URL + 'profile',
        name: 'Profile',
        component: () => import('../views/Profile.vue'),
    },
    {
        path: process.env.BASE_URL + 'oidc-silent-renew',
        name: 'OidcSilentRenew',
        component: () => import('../views/OidcSilentRenew.vue'),
    },
    {
        path: process.env.BASE_URL + 'welcome',
        name: 'Welcome',
        component: () => import('../views/Welcome.vue'),
    },
]

const router = createRouter({
    base: '/vue3/',
    history: createWebHistory(),
    routes
})
router.beforeEach(vuexOidcCreateRouterMiddleware(store, 'oidcStore'))

export default router
dced5bon

dced5bon1#

看起来我忽略了。解决方法很简单。只需添加isPublic并将其设置为routemeta下的true

const routes = [
    ...
    {
        path: process.env.BASE_URL + 'welcome',
        name: 'Welcome',
        component: () => import('../views/Welcome.vue'),
        meta: {
            isPublic: true
        }
    },
    ...
]

相关问题