38 lines
984 B
Vue
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> |