Je ne trouve aucune documentation sur Google One Tap UX et comment conserver le statut de connexion après la redirection de connexion. J'utilise l'API HTML, veuillez consulter le code ici :
setTimeout(function () { let target = document.getElementById('google-signin'); target.innerHTML = '<div id="g_id_onload" data-client_id="x" data-context="signin" data-login_uri="https://x/account/google/callback" data-auto_select="true" data-itp_support="true"></div>'; var s = document.createElement("script"); s.src = 'https://accounts.google.com/gsi/client'; document.head.appendChild(s); console.log('appended script', s); }, 30000); </script>
Essentiellement, je retarde cette fenêtre contextuelle de connexion de 30 secondes, cette partie fonctionne bien, mais peu de temps après, cela se produit :
J'aurais pensé que le SDK de Google définirait un cookie quelque part ou quelque chose du genre, mais je suppose que ce n'est pas le cas, ou je devrais gérer l'état de connexion persistant à ma manière. Je veux juste connaître la bonne approche ici.
Ma question est la suivante : Comment Google sait-il si un utilisateur est connecté à l'aide de Google One Tap UX ?
J'ai trouvé une solution. Google vous permet de placer un cookie appelé
data-skip_prompt_cookie="yourcookie"
sur une balise div qui ignorera l'invite en un clic si le cookie a une vraie valeur.Ce que j'ai fait, c'est que dans le rappel du serveur dans asp.net, j'ai ajouté un cookie à la réponse. Cela garantit que l'invite n'est désactivée qu'une fois que quelqu'un est réellement connecté.
Cela garantit que lorsque mon serveur redirige vers la page d'origine, le cookie est là et le clic ne se reproduira plus