如何在Nuxt.js中设置beforeResolve导航保护

问题描述 投票:5回答:1

是否可以在nuxt.config.js中添加beforeResolve导航保护?

我的nuxt.config.js

module.exports {
    ...
    router: {
        beforeResolve(to, from, next) {
            if (this.$store.getters.isLoggedIn)
                 next('/resource')
        }
    }
    ...
}

但是它永远不会被调用!

我一直在尝试根据vuex存储上的登录用户状态在安装组件之前实现重定向。

vue.js vuex vue-router nuxt.js
1个回答
0
投票

您有2个选择。您可以通过中间件或在相应页面中设置全局规则。

// middleware/route-guard.js
export default function ({ app }) {

    app.router.beforeResolve((to, from, next) => {
        if (app.store.getters.isLoggedIn) {
            next('/resource')
        } else {
            next();
        }
    });

}

// Nuxt Page Component
export default {
    beforeResolve (to, from, next) {
        if (this.$store.getters.isLoggedIn) {
            next('/resource')
        } else {
            next();
        }
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.