Heim  >  Fragen und Antworten  >  Hauptteil

Endlose Weiterleitungsschleife bei Google One-Click-Login

Ich kann keine Dokumentation zu Google One Tap UX und zur Beibehaltung des Anmeldestatus nach der Anmeldeumleitung finden. Ich verwende eine HTML-API. Den Code finden Sie hier:

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>

Im Wesentlichen verzögere ich dieses Anmelde-Popup um 30 Sekunden, dieser Teil funktioniert einwandfrei, aber dann passiert kurz darauf Folgendes:

  1. Anmeldung erfolgt
  2. Umleitung erfolgt
  3. Der Server leitet zurück zur verweisenden Seite weiter
  4. Nach 30 Sekunden beginnt der Vorgang erneut

Ich hätte gedacht, dass das Google SDK irgendwo ein Cookie oder so setzen würde, aber ich vermute, dass das nicht der Fall ist, oder ich sollte den dauerhaften Anmeldestatus auf meine eigene Weise handhaben. Ich möchte hier nur den richtigen Ansatz kennen.

Meine Frage lautet: Woher weiß Google, ob ein Nutzer über Google One Tap UX angemeldet ist?

P粉463840170P粉463840170203 Tage vor419

Antworte allen(1)Ich werde antworten

  • P粉115840076

    P粉1158400762024-03-30 00:31:08

    想出了一个解决办法。 Google 允许您在 div 标签上放置一个名为 data-skip_prompt_cookie="yourcookie" 如果该 cookie 具有真实值,这将跳过一键提示

    我所做的是在 asp.net 中的服务器回调中,我向响应添加了一个 cookie。这可确保只有在有人实际登录后才会禁用提示。

    Response.Cookies.Append(
                "yourcookie", "true");

    这可以确保当我的服务器重定向回原始页面时,cookie 存在并且一键点击不会再次出现

    Antwort
    0
  • StornierenAntwort