1+ <template >
2+ <section v-show =" isActive" id =" authentication" class =" mb-16" >
3+ <div class =" mb-8" >
4+ <h1 class =" text-3xl font-bold text-gray-900 mb-4" >{{ t('documentation.authentication.title') }}</h1 >
5+ <p class =" text-lg text-gray-600" >{{ t('documentation.authentication.subtitle') }}</p >
6+ </div >
7+
8+ <div class =" bg-white rounded-2xl shadow-lg border border-gray-200 overflow-hidden" >
9+ <div class =" bg-gradient-to-r from-yellow-600 to-orange-600 px-8 py-6" >
10+ <h2 class =" text-2xl font-bold text-white mb-2" >{{ t('documentation.authentication.title') }}</h2 >
11+ <p class =" text-yellow-100" >{{ t('documentation.authentication.subtitle') }}</p >
12+ </div >
13+
14+ <div class =" p-8" >
15+ <div class =" bg-green-50 border-l-4 border-green-400 p-6 mb-8" >
16+ <div class =" flex items-center" >
17+ <svg class =" w-6 h-6 text-green-400 mr-3" fill =" none" stroke =" currentColor" viewBox =" 0 0 24 24" >
18+ <path stroke-linecap =" round" stroke-linejoin =" round" stroke-width =" 2" d =" M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" ></path >
19+ </svg >
20+ <div >
21+ <h3 class =" text-lg font-semibold text-green-800 mb-1" >{{ t('documentation.authentication.noAuthRequired') }}</h3 >
22+ <p class =" text-green-700" >{{ t('documentation.authentication.noAuthDescription') }}</p >
23+ </div >
24+ </div >
25+ </div >
26+
27+ <div class =" grid md:grid-cols-2 gap-8" >
28+ <div class =" bg-blue-50 rounded-xl p-6" >
29+ <h3 class =" text-xl font-semibold text-gray-900 mb-4" >{{ t('documentation.authentication.rateLimiting') }}</h3 >
30+ <ul class =" space-y-2 text-gray-600" >
31+ <li v-for =" (detail, index) in $tm('documentation.authentication.rateLimitDetails')" :key =" index" class =" flex items-center" >
32+ <svg class =" w-4 h-4 text-blue-500 mr-2" fill =" none" stroke =" currentColor" viewBox =" 0 0 24 24" >
33+ <path stroke-linecap =" round" stroke-linejoin =" round" stroke-width =" 2" d =" M5 13l4 4L19 7" ></path >
34+ </svg >
35+ {{ detail }}
36+ </li >
37+ </ul >
38+ </div >
39+
40+ <div class =" bg-purple-50 rounded-xl p-6" >
41+ <h3 class =" text-xl font-semibold text-gray-900 mb-4" >{{ t('documentation.authentication.bestPractices') }}</h3 >
42+ <ul class =" space-y-2 text-gray-600" >
43+ <li v-for =" (practice, index) in $tm('documentation.authentication.practiceDetails')" :key =" index" class =" flex items-center" >
44+ <svg class =" w-4 h-4 text-purple-500 mr-2" fill =" none" stroke =" currentColor" viewBox =" 0 0 24 24" >
45+ <path stroke-linecap =" round" stroke-linejoin =" round" stroke-width =" 2" d =" M9 12l2 2 4-4" ></path >
46+ </svg >
47+ {{ practice }}
48+ </li >
49+ </ul >
50+ </div >
51+ </div >
52+ </div >
53+ </div >
54+ </section >
55+ </template >
56+
57+ <script setup lang="ts">
58+ import { useI18n } from ' vue-i18n'
59+
60+ interface Props {
61+ isActive: boolean
62+ }
63+
64+ defineProps <Props >()
65+ const { t, tm : $tm } = useI18n ()
66+ </script >
0 commit comments