我有一个nuxt
项目。在.nuxt
文件中有一个router.js文件,当我想像这样添加我自己的代码时:
routes: [{
path: "/ingelogd",
component: _0716b7e1,
name: "ingelogd",
meta: {requiresAuth: true}
}]
router.beforeEach((to, from, next)=> {
const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
const isAuthenticated = firebase.auth().currentUser;
if(requiresAuth && !isAuthenticated) {
next("/reserveren")
} else {
next()
}
})
它会自动将代码更新为:
routes: [{
path: "/ingelogd",
component: _0716b7e1,
name: "ingelogd",
}]
有人知道问题出在哪里吗?请告诉我。
您不应该编辑.nuxt
目录中的任何文件,以下是有关它的文档。
你应该使用路由器中间件来执行这种逻辑,看看吧!
您不应该修改.nuxt
目录中的任何文件。在这种情况下,您应该使用中间件,在项目根目录中的middleware
文件夹中添加名为auth.js
的文件,内容如下:
export default function ({ app,route }) {
app.router.beforeEach((to, from, next)=> {
const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
const isAuthenticated = firebase.auth().currentUser;
if(requiresAuth && !isAuthenticated) {
next("/reserveren")
} else {
next()
}
})
}
然后,在您的nuxt.config.js
中添加:
router: {
middleware: 'auth'
}