Javascript Nuxt(Vue),登录后解析路由,在动态生成的路由上添加beforeGuard
正如您所知,Nuxt会自动生成具有给定页面的VueRouter。 我想要实现的是添加一个自定义的身份验证保护。 所以,基本上在呈现路由之前,我会检查用户是否经过身份验证,如果是,则显示页面,如果不是,则显示登录页面,并在登录后解析路径 因此,文档指出中间件是处理此类情况的一种方法。 在我的例子中,我的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
auth.js
位于middleware
文件夹中:
export default function (ctx) {
const { store, redirect } = ctx
if (!store.state.currentUser) {
return redirect('/signin')
}
}
这可以很好地重定向到登录/注册页面。问题是我没有办法在用户登录后解析原始路径
比如:
onUserLoggedIn(){
this.$router.next()
}
在thsSignIn.vue
组件中
你有办法解决这个问题吗
或者,是否有一种方法可以在Nuxt生成的动态路由上设置
beforeGuard
摘自:
此方法将单个整数作为参数,指示历史堆栈中向前或向后的步数,类似于window.history.go(n)。
另一种方法是
在重定向之前存储路径并在以后重用它。嗨,ctx包含路由,并且在它上面还应该有参数和查询,也作为完整路径,这就足够了吗?是的,我考虑过这个选项-在SSR中它应该工作得很好,因为上下文是通过客户端和服务器afaik传递的。我知道这有点尴尬,因为我只想在我的部分应用程序(用于SEO)中利用SSR的优势,而更希望它在其他部分(需要用户/配置文件管理的部分)表现得像SPA一样。这听起来可能很奇怪,但我正在使用Firebase lib for auth()和数据库,这在客户端处理起来相当简单,我真的不想浪费时间在后端实现它