- ルーターガードを使用する方法: Vue Routerは、ルーターガードと呼ばれる機能を提供しています。ルーターガードは、ナビゲーションが行われる前に特定の条件をチェックするために使用されます。以下は、ルーターガードを使用してプロテクトされたルートを作成する方法の例です。
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: '/protected',
component: ProtectedComponent,
meta: { requiresAuth: true }
// プロテクトされたルートにはrequiresAuthメタデータを追加します
},
// その他のルート ...
]
})
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isAuthenticated()) {
next('/login') // 認証されていない場合はログインページにリダイレクトします
} else {
next()
}
})
function isAuthenticated() {
// 認証のロジックを実装します
}
- コンポーネント内で条件付きレンダリングを使用する方法: 別の方法として、コンポーネント内で条件付きレンダリングを使用することができます。以下は、プロテクトされたコンポーネント内で条件付きレンダリングを使用する方法の例です。
<template>
<div>
<h1>プロテクトされたページ</h1>
<div v-if="isAuthenticated">
<!-- プロテクトされたコンテンツ -->
</div>
<div v-else>
<p>ログインしてください。</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isAuthenticated: false
}
},
created() {
this.isAuthenticated = isAuthenticated()
}
}
</script>
これらは、Vue.jsでプロテクトされたルーターを実装するための一般的な方法のいくつかです。実際のアプリケーションに応じて、好みや要件に合わせてこれらの方法を選択することができます。また、実際の認証ロジックやルートの構成は、アプリケーションの要件に基づいて適切にカスタマイズする必要があります。