Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nuxt(Vue),登录后解析路由,在动态生成的路由上添加beforeGuard_Javascript_Vue.js_Vuejs2_Vue Router_Nuxt.js - Fatal编程技术网

Javascript Nuxt(Vue),登录后解析路由,在动态生成的路由上添加beforeGuard

Javascript Nuxt(Vue),登录后解析路由,在动态生成的路由上添加beforeGuard,javascript,vue.js,vuejs2,vue-router,nuxt.js,Javascript,Vue.js,Vuejs2,Vue Router,Nuxt.js,正如您所知,Nuxt会自动生成具有给定页面的VueRouter。 我想要实现的是添加一个自定义的身份验证保护。 所以,基本上在呈现路由之前,我会检查用户是否经过身份验证,如果是,则显示页面,如果不是,则显示登录页面,并在登录后解析路径 因此,文档指出中间件是处理此类情况的一种方法。 在我的例子中,我的auth.js位于middleware文件夹中: export default function (ctx) { const { store, redirect } = ctx if

正如您所知,Nuxt会自动生成具有给定页面的VueRouter。 我想要实现的是添加一个自定义的身份验证保护。 所以,基本上在呈现路由之前,我会检查用户是否经过身份验证,如果是,则显示页面,如果不是,则显示登录页面,并在登录后解析路径

因此,文档指出中间件是处理此类情况的一种方法。 在我的例子中,我的
auth.js
位于
middleware
文件夹中:

export default function (ctx) {
    const { store, redirect } = ctx
    if (!store.state.currentUser) {
        return redirect('/signin')
    }
}
这可以很好地重定向到登录/注册页面。问题是我没有办法在用户登录后解析原始路径

比如:

onUserLoggedIn(){
    this.$router.next()
}
在ths
SignIn.vue
组件中

你有办法解决这个问题吗


或者,是否有一种方法可以在Nuxt生成的动态路由上设置
beforeGuard

摘自:

此方法将单个整数作为参数,指示历史堆栈中向前或向后的步数,类似于window.history.go(n)。


另一种方法是
在重定向之前存储路径并在以后重用它。

嗨,ctx包含路由,并且在它上面还应该有参数和查询,也作为完整路径,这就足够了吗?是的,我考虑过这个选项-在SSR中它应该工作得很好,因为上下文是通过客户端和服务器afaik传递的。我知道这有点尴尬,因为我只想在我的部分应用程序(用于SEO)中利用SSR的优势,而更希望它在其他部分(需要用户/配置文件管理的部分)表现得像SPA一样。这听起来可能很奇怪,但我正在使用Firebase lib for auth()和数据库,这在客户端处理起来相当简单,我真的不想浪费时间在后端实现它