Files
List_ultimate/app/components/button/google-challenge.vue
2026-02-26 21:29:34 +01:00

38 lines
984 B
Vue

<script setup lang="ts">
const authStore = useAuthStore()
const userEmail = authStore.user?.email
const { isReady, login } = useCodeClient({
// Force l'utilisateur à re-valider explicitement
prompt: 'consent',
login_hint: userEmail,
onSuccess: async (codeResponse) => {
// 1. ICI, on reçoit un 'code' (ex: 4/0Afge...)
console.log("Code reçu pour le BO:", codeResponse.code)
// 6. Envoi au BO pour échange contre sudo_token
try {
const result = await $fetch('/api/auth/google-sudo', {
method: 'POST',
body: { code: codeResponse.code }
})
// Ton BO pourra alors utiliser ce code pour valider l'identité
} catch (err) {
console.error("Erreur BO:", err)
}
},
onError: (error) => console.error("Échec Sudo:", error)
})
</script>
<template>
<button
:disabled="!isReady"
@click="() => login()"
class="btn-sudo"
>
Vérification de sécurité via Google
</button>
</template>