Vue を使用してこの小さなアプリを構築していますが、認証を機能させることができません。正確に言うと、リダイレクトが機能せず、true ログと Authenticated ログの両方が取得されますが、ホームページ (/) にはリダイレクトされません。しかし、アプリを開くと、すぐに /login に移動します。これは問題ありません。私もそうしたいのですが、前述したように、ログインしようとするとリダイレクトされません。
これは私のログイン コンポーネントとルーターです。
import { createRouter, createWebHistory } from 'vue-router' 「@/views/LoginView.vue」から LoginView をインポートします AboutView を '../views/AboutView.vue' からインポートします。 isAuthenticated を '@/views/LoginView.vue' からインポートします。 const router = createRouter({ 履歴: createWebHistory(import.meta.env.BASE_URL), ルート: [ { パス: '/login'、 名前: 'ログイン'、 コンポーネント: ログインビュー }、 { パス: '/'、 名前: 「ホーム」、 メタ: { 認証が必要: true }、 コンポーネント: AboutView、 beforeEnter:(to,_,next)=>{ if(to.meta.requiresAuth && !isAuthenticated.value){ 次('/ログイン'); } それ以外{ 次(); router.push('/'); } } } 】 }) デフォルトルーターをエクスポートします。
<テンプレート>テンプレート> <スクリプト設定 lang="ts"> 'vue' から { ref} をインポートします 「@/router/index」からルーターをインポートします const isAuthenticated = ref(false); const accessToken = ref(''); const checkAccessToken = () => { if (accessToken.value === '123') { isAuthenticated.value = true; console.log(isAuthenticated.value); console.log('検証済み'); router.push('/'); } それ以外 { } };アクセストークンを入力してログイン
router.push()
次に、vue-router と同様のインポート方法を使用してみてください。 リーリーが機能しない場合のみ
次に、
router.push('/')を使用します。