我正在尝试使用 Nuxt.js 创建一个带有身份验证的简单应用。我有一个auth
中间件,如果我没有登录,它会将我重定向到login
页。问题出在logout
函数中,该函数应检查是否有auth
中间件此页面,并将我重定向到login
页面。我正在尝试写
methods: {
async logout() {
try {
await this.$store.dispatch('auth/logout');
this.$router.push(this.$route.fullPath);
} catch (e) {
console.log(e);
}
}
}
但是router.push
不会触发中间件。如何使用logout
函数使其正常工作?
(主要问题是如何在不进行强制刷新的情况下手动重新运行页面上的中间件,以检查页面是否需要身份验证)。
基本上,问题在于,如果在需要身份验证的页面上调用logout
,则在“推送”当前路径以路由当前页面上的中间件之后,需要将用户重定向到login
页,而不是停留在需要验证用户身份的页面上。
答案 0 :(得分:0)
$router.push
不会刷新同一路径上的页面。您可以尝试$router.go()
。
如果不带任何参数调用go()
,则会刷新当前页面。