initial commit
This commit is contained in:
38
app/components/button/google-challenge.vue
Normal file
38
app/components/button/google-challenge.vue
Normal file
@@ -0,0 +1,38 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user