我正在使用 Vue 构建这个小应用程序,并且我无法使身份验证工作。确切地说,重定向不起作用,我同时获得了真实日志和经过身份验证的日志,但我没有被重定向到主页(/ )。但是当我打开应用程序时,我会立即进入 /login ,这是可以的,我想要这样,但正如我所说,当我尝试登录时,我没有被重定向
这是我的登录组件和路由器。
import { createRouter, createWebHistory } from 'vue-router'
import LoginView from '@/views/LoginView.vue'
import AboutView from '../views/AboutView.vue';
import isAuthenticated from '@/views/LoginView.vue';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/login',
name: 'Login',
component: LoginView
},
{
path: '/',
name: 'Home',
meta: {
requiresAuth: true
},
component: AboutView,
beforeEnter:(to,_,next)=>{
if(to.meta.requiresAuth && !isAuthenticated.value){
next('/login');
}
else{
next();
router.push('/');
}
}
}
]
})
export default router
<template>
<div>
<h2>Enter the access token to login</h2>
<hr />
<div class="col-md-8">
<section id="loginForm">
<form @submit.prevent="checkAccessToken">
<div class="form-group">
<label><b>Access Token</b></label>
<input v-model="accessToken" type="password" class="form-control" />
</div>
<input type="submit" value="Log in" class="btn btn-primary" />
</form>
</section>
</div>
</div>
</template>
<script setup lang="ts">
import { ref} from 'vue'
import router from '@/router/index'
const isAuthenticated = ref(false);
const accessToken = ref('');
const checkAccessToken = () => {
if (accessToken.value === '123') {
isAuthenticated.value = true;
console.log(isAuthenticated.value);
console.log('Authenticated');
router.push('/');
} else {
}
};
</script>
如果只是
router.push()
不起作用vue-router 导入怎么样
并使用
router.push('/')