У меня есть следующий фрагмент кода из моего приложения:
router.beforeEach((to, from, next) => {
const requiresAuth = to.matched.some((x) => x.meta.requiresAuth);
const requiresGuest = to.matched.some((x) => x.meta.requiresGuest);
const isLoggedin = store.getters["isLoggedin"];
if (requiresAuth && !isLoggedin) {
//if not loggedin or if user tries to access other routes directly
next({
path: "/",
query: {
redirect: to.fullPath
},
});
} else if (requiresGuest && isLoggedin) {
//if loggedin user try to access 'login' route
next("/dashboard");
} else {
next();
}
});
ПРИМЕЧАНИЕ:/
мой вид входа.
С помощью приведенного выше фрагмента кода, когда пользователь пытается получить доступ к /post/create
без входа в систему, он перенаправляется на /
с путем перенаправления в качестве запроса.
http://localhost:8080/?redirect=%2Fpost%2Fcreate
После входа пользователь перенаправляется на /dashboard
.
Я также хочу перенаправить зарегистрированных пользователей на /dashboard
, если они попытаются посетить /
.
Как лучше всего это сделать. Поскольку мой текущий код не может этого добиться.
Сделать условный next(...) в хуке
/
beforeRouteEnter?