Schaltfläche „Über Google anmelden“ für das Web

Schaltfläche „Über Google anmelden“ für das Web

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juli 9, 2025
account_circleVerfasst von Brian Daugherty

1. Übersicht

In diesem Codelab erstellen wir eine Webseite für die Nutzeranmeldung. Sie verwenden die Google Identity Services-JavaScript-Bibliothek, um die Schaltfläche „Über Google anmelden“ anzuzeigen und anzupassen.

Schaltfläche „Über Google anmelden“

  • Einer Webseite die Schaltfläche „Über Google anmelden“ hinzufügen
  • OAuth 2.0-Webanwendung einrichten
  • ID-Token decodieren
  • Schaltfläche „Über Google anmelden“ anpassen

Voraussetzungen

  1. Ein Texteditor und ein Ort zum Hosten einer Webseite. Diese Umgebungen werden in diesem Codelab behandelt:
    • lokal in einem Terminal auf Ihrem Computer ausgeführt wird oder
    • mit einer Plattform wie Glitch.
    Wählen Sie die Umgebung aus, die Ihnen am besten gefällt.
  2. Ein Google Cloud-Projekt. Sie können Ihr vorhandenes Projekt verwenden oder ein neues erstellen. Ein Google Cloud Platform-Konto und -Projekt sind kostenlos.
  3. Grundkenntnisse in HTML, CSS, JavaScript und den Chrome-Entwicklertools (oder einem ähnlichen Tool).

Fangen wir also an.

2. Anmeldeseite erstellen

Fügen Sie dieses Codebeispiel in eine Datei mit dem Namen index.html ein. Sie können dies auf Ihrem Computer mit Ihrem bevorzugten Texteditor oder auf einer Plattform wie Glitch tun.

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://accounts.google.com/gsi/client" async></script>

    <script>
      function decodeJWT(token) {

        let base64Url = token.split(".")[1];
        let base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
        let jsonPayload = decodeURIComponent(
          atob(base64)
            .split("")
            .map(function (c) {
              return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
            })
            .join("")
        );
        return JSON.parse(jsonPayload);
      }

      function handleCredentialResponse(response) {

        console.log("Encoded JWT ID token: " + response.credential);

        const responsePayload = decodeJWT(response.credential);

        console.log("Decoded JWT ID token fields:");
        console.log("  Full Name: " + responsePayload.name);
        console.log("  Given Name: " + responsePayload.given_name);
        console.log("  Family Name: " + responsePayload.family_name);
        console.log("  Unique ID: " + responsePayload.sub);
        console.log("  Profile image URL: " + responsePayload.picture);
        console.log("  Email: " + responsePayload.email);
      }
    </script>
  </head>
  <body>
    <!-- g_id_onload contains Google Identity Services settings -->
    <div
      id="g_id_onload"
      data-auto_prompt="false"
      data-callback="handleCredentialResponse"
      data-client_id="PUT_YOUR_WEB_CLIENT_ID_HERE"
    ></div>
    <!-- g_id_signin places the button on a page and supports customization -->
    <div class="g_id_signin"></div>
  </body>
</html>

Dieser Code besteht aus HTML und JavaScript und führt folgende Aktionen aus:

  • konfiguriert die Google Identity Services-Bibliothek mit g_id_onload.
  • eine Schaltfläche „Über Google anmelden“ mit g_id_signin angezeigt wird,
  • fügt einen JavaScript-Callback-Funktionshandler namens handleCredentialResponse hinzu, um Anmeldedaten von Google zu empfangen, und
  • Eine decodeJWT-Funktion zum Konvertieren der JSON Web Token-Anmeldedaten (JWT) in einfaches JSON.

Möglicherweise stimmt etwas mit data-client_id="PUT_YOUR_WEB_CLIENT_ID_HERE" nicht.

Ignorieren Sie es erst einmal. Wir kommen gleich darauf zurück.

3. Webseite bereitstellen

Wir sehen uns zwei Umgebungen für die Bereitstellung von index.html für den Browser an:

  • einen Webserver lokal auf Ihrem Computer ausführen
  • eine Remote-Plattform wie Glitch.

Wählen Sie die Methode aus, die Ihnen am besten liegt. Nach der Einrichtung verwenden wir die URL, um einen OAuth-Webclient zu konfigurieren.

Lokal auf Ihrem Computer

Prüfen Sie, ob Python3 auf Ihrem System installiert ist. Die Einrichtung unterscheidet sich je nach Betriebssystem und Plattform. Beginnen Sie mit Python Setup and Usage, wenn Sie Python auf Ihrem Computer installieren müssen.

Starten Sie den Python-Webserver in dem Verzeichnis, das index.html enthält:

$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

Ein Webserver überwacht jetzt Port 8000 auf Verbindungen und ist bereit, Ihre Anmeldeseite bereitzustellen. Die URL lautet

http://localhost:8000

Über eine Webentwicklungsplattform

Wenn Sie sich dafür entschieden haben, Ihre Anmeldeseite mit Glitch (oder einem ähnlichen Tool) zu bearbeiten und zu hosten, sollten Sie index.html entweder in einem Vorschaufenster oder einem neuen Browsertab öffnen können.

Normalerweise verwenden Sie die URL, die dem Projektnamen entspricht, den Sie bei der Einrichtung Ihres glich.com-Projekts eingegeben haben. Wenn Ihr Glitch-Projekt beispielsweise den Namen gis-example hat, lautet die URL https://gis-example.glitch.me. Sie haben natürlich einen anderen Projektnamen ausgewählt und können diesen nicht wiederverwenden. Die URL lautet

https://<var>your-project-name</var>.glitch.me

Seite laden

Warte mal…

Zuerst müssen wir einen OAuth 2.0-Webclient erstellen und konfigurieren.

Kopieren Sie die URL oder notieren Sie sie sich, da sie im nächsten Schritt verwendet wird.

4. OAuth-Webclient einrichten

Konfigurieren wir OAuth, damit sich Nutzer anmelden können.

  • Klicken Sie auf diesen Link, um einen OAuth 2.0-Webclient zu erstellen. Bei Bedarf hilft Ihnen ein Assistent beim Erstellen und Einrichten eines neuen Google Cloud-Projekts.
  • Wählen Sie im Drop-down-Menü Anwendungstyp die Option Webanwendung aus.
  • Klicken Sie unter Autorisierte JavaScript-Quellen auf die Schaltfläche URI hinzufügen.
  • Geben Sie die URL ein, unter der index.html gehostet wird. Sie finden sie in Schritt 3: Webseite bereitstellen.

    Auf Ihrem lokalen Computer gehostet

    Lokaler Ursprung auf Ihrem Computer

    Auf einer Remote-Plattform gehostet

    Remote-Hostingplattform verwenden
  • Klicken Sie auf Erstellen.
  • Kopieren Sie die neue Client-ID.

Eine Sache,

Wir müssen index.html aktualisieren, damit die neue Client-ID verwendet wird. Ersetzen Sie in Ihrem Editor PUT_YOUR_WEB_CLIENT_ID_HERE durch Ihre neue Client-ID. Eine Client-ID sieht so aus: 1234567890-abc123def456.apps.googleusercontent.com.

Melden wir uns an!

5. Anmelden

Öffnen Sie zuerst die Entwicklerkonsole Ihres Browsers. Hier werden alle Fehler und die von Google zurückgegebenen JWT-ID-Token-Anmeldedaten protokolliert.

Klicken Sie auf die Schaltfläche „Über Google anmelden“.

So geht es weiter:

  • Wenn Sie derzeit in mehreren Google-Konten angemeldet sind, werden Sie aufgefordert, das Konto auszuwählen, mit dem Sie sich in dieser Web-App anmelden möchten.
  • Wenn Sie sich zum ersten Mal in dieser Web-App anmelden, wird eine Aufforderung zur Einwilligung angezeigt.

Nachdem Sie optional ein Konto ausgewählt und Ihre Einwilligung erteilt haben, antwortet Google mit einem JWT. Die Callback-Funktion handleCredentialResponse, die im Browser ausgeführt wird, empfängt das JWT.

In diesem Codelab dekodieren und geben wir den JWT-Inhalt aus. In einer Produktions-Web-App würden Sie das dekodierte JWT prüfen und verwenden, um etwas Sinnvolleres zu tun, z. B. ein neues Konto auf Ihrer Backend-Plattform zu erstellen oder eine neue Sitzung für den Nutzer einzurichten.

6. JWT-ID-Token prüfen

Das codierte JWT wird in der Entwicklerkonsole protokolliert. Nach dem Decodieren des JWT werden einige häufig verwendete ID-Token-Felder auch in der Konsole protokolliert.

Sie können Onlinetools wie jwt.io verwenden, um das JWT zu decodieren.

Alternativ kann auch jq im Terminal verwendet werden, um das JWT zu decodieren und anzusehen. Möglicherweise müssen Sie jq mit Ihrem Paketmanager installieren. Fügen Sie zuerst den codierten JWT-String in die doppelten Anführungszeichen ein:

$ JWT="eyJhbGciOiJSUzI1Ni ... Hecz6Wm4Q"

Verwenden Sie dann diesen Befehl, um sie zu decodieren.

$ echo $JWT | jq -R 'split(".") | .[0],.[1] | @base64d | fromjson'
{
  "alg": "RS256",
  "kid": "c7e04465649ffa606557650c7e65f0a87ae00fe8",
  "typ": "JWT"
}
{
  "iss": "https://accounts.google.com",
  "azp": "123456789012-s0meRand0mStR1nG.apps.googleusercontent.com",
  "aud": "123456789012-s0meRand0mStR1nG.apps.googleusercontent.com",
  "sub": "2718281828459045",
  "email": "example@example.com",
  "email_verified": true,
  "nbf": 1744645148,
  "name": "Brian Daugherty",
  "picture": "https://lh3.googleusercontent.com/a/08a898b88ca4d6407be652d8",
  "given_name": "Brian",
  "family_name": "Daugherty",
  "iat": 1744645448,
  "exp": 1744649048,
  "jti": "52cd32984b30e178aa88bc2e75e63e055a461fcf"
}

Einige der Schlüssel und Werte wie „email“, „name“ und „picture“ sind relativ leicht zu verstehen. Andere Werte werden verwendet, um das JWT zu überprüfen, bevor Sie es verwenden. Nutzerinformationen aus dem ID-Token abrufen enthält weitere Informationen zur Bedeutung der einzelnen Felder.

7. Schaltfläche anpassen

So platzieren Sie eine Standard-Anmeldeschaltfläche auf einer Seite:

    <div class="g_id_signin"></div>

Diese Schaltfläche wird angezeigt.

Schaltfläche „Über Google anmelden“

Vielleicht möchten Sie aber die Farbe, Größe oder den Text an das Design Ihrer Website anpassen.

Wir ändern die Farbe der Schaltfläche in Blau und lassen stattdessen Mit Google registrieren anzeigen.

Öffnen Sie index.html, suchen Sie das Element g_id_signin und fügen Sie die Attribute data-theme="filled_blue" und data-text="signup_with" hinzu:

    <div
     
class="g_id_signin"
     
data-theme="filled_blue"
     
data-text="signup_with"
   
></div>

Nach dem Speichern und Neuladen der Seite wird eine blaue Schaltfläche mit dem neuen Text angezeigt.

Eine Schaltfläche „Bei Google registrieren“.

Sie können die Schaltfläche weiter anpassen. Eine vollständige Liste der Optionen finden Sie unter Attribute für visuelle Daten. Außerdem können Sie unseren HTML-Codegenerator ausprobieren.

8. Zusätzliche Ressourcen

Glückwunsch!

Sie haben einer Webseite eine Schaltfläche „Mit Google anmelden“ hinzugefügt, einen OAuth 2.0-Webclient konfiguriert, ein JWT-ID-Token decodiert und erfahren, wie Sie das Aussehen der Schaltfläche anpassen können.

Diese Links können Ihnen bei den nächsten Schritten helfen:

Häufig gestellte Fragen