引入了一个标志位 isRedirected
来追踪重定向操作,并将其默认设置为 false
。当进行重定向操作时,设置 isRedirected
为 true
,以避免重复的重定向。
let isRedirected = false;
router.beforeEach((to, from, next) => {
const token = sessionStorage.getItem('token');
const isLoggedIn = token !== null;
if (!isLoggedIn && !isRedirected) {
isRedirected = true;
next('/login');
} else if (isLoggedIn && to.path === '/login') {
next('/home');
} else {
next();
}
});