Files
drop/server/pages/auth/mfa/index.vue
T
DecDuck 13c97cfcfc In-app store, torrential backend, locales (#332)
* feat: add store nav and fixes

* fix: reduce password requirement & new task error ui

* fix: client webtoken fix

* fix: delta versions and dockerfile

* fix: use setup platforms for filter & display

* fix: setup not accounted when returning valid options

* feat: tighter delta version support

* feat: dl/disk size

* feat: offload manifest generation to torrential

* fix: bump torrential

* feat: remove droplet

* feat: bump torrential

* feat: convert locales
2026-02-06 00:12:24 +11:00

65 lines
2.2 KiB
Vue

<template>
<ul
role="list"
class="-mt-6 divide-y divide-white/10 border-b border-white/10"
>
<li v-if="mfa.includes(MFAMec.TOTP)" class="relative flex gap-x-6 py-6">
<div
class="flex size-10 flex-none items-center justify-center rounded-lg bg-zinc-800/50 shadow-xs outline-1 -outline-offset-1 outline-white/10"
>
<ClockIcon class="size-6 text-blue-400" aria-hidden="true" />
</div>
<div class="flex-auto">
<h3 class="text-sm/6 font-semibold text-white">
<NuxtLink :to="{ path: '/auth/mfa/totp', query: route.query }">
<span class="absolute inset-0" aria-hidden="true"></span>
{{ $t("auth.2fa.totp.title") }}
</NuxtLink>
</h3>
<p class="mt-2 text-sm/6 text-zinc-400">
{{ $t("auth.2fa.totp.description") }}
</p>
</div>
<div class="flex-none self-center">
<ChevronRightIcon class="size-5 text-zinc-500" aria-hidden="true" />
</div>
</li>
<li v-if="mfa.includes(MFAMec.WebAuthn)" class="relative flex gap-x-6 py-6">
<div
class="flex size-10 flex-none items-center justify-center rounded-lg bg-zinc-800/50 shadow-xs outline-1 -outline-offset-1 outline-white/10"
>
<KeyIcon class="size-6 text-blue-400" aria-hidden="true" />
</div>
<div class="flex-auto">
<h3 class="text-sm/6 font-semibold text-white">
<NuxtLink :to="{ path: '/auth/mfa/webauthn', query: route.query }">
<span class="absolute inset-0" aria-hidden="true"></span>
{{ $t("auth.2fa.passkey.title") }}
</NuxtLink>
</h3>
<p class="mt-2 text-sm/6 text-zinc-400">
{{ $t("auth.2fa.passkey.description") }}
</p>
</div>
<div class="flex-none self-center">
<ChevronRightIcon class="size-5 text-zinc-500" aria-hidden="true" />
</div>
</li>
</ul>
</template>
<script setup lang="ts">
import {
ChevronRightIcon,
ClockIcon,
KeyIcon,
} from "@heroicons/vue/24/outline";
import { MFAMec } from "~/prisma/client/enums";
const mfa = await $dropFetch("/api/v1/auth/mfa");
const route = useRoute();
const router = useRouter();
if (mfa.length == 0) router.push("/");
</script>