Zum Inhalt springen

Google Login Einrichtung

In diesem Leitfaden lernen Sie, wie Sie Google Login mit Capgo Social Login einrichten. Sie benötigen Folgendes, um Google Login einzurichten:

  • Ein Google-Konto

In diesem Teil richten Sie den Login-Bildschirm ein, der von Google angezeigt wird.

  1. Bitte gehen Sie zu console.cloud.google.com
  2. Klicken Sie auf die Projektauswahl Google Console Projektauswahl
  3. Wenn Sie noch kein Projekt haben, erstellen Sie bitte ein neues Projekt.
    1. Klicken Sie auf New project Neues Projekt Schaltfläche in Google Console
    2. Benennen Sie Ihr Projekt und klicken Sie auf Create Projekt-Benennungsbildschirm zeigt Namensfeld und Create-Schaltfläche
    3. Stellen Sie sicher, dass Sie im richtigen Projekt sind Projektname in der Auswahl zeigt korrekte Projektauswahl
  4. Beginnen Sie mit der Konfiguration des OAuth consent screen
    1. Klicken Sie auf die Suchleiste

      Google Console Suchleiste
    2. Suchen Sie nach OAuth consent screen und klicken Sie darauf

      Suchergebnisse zeigen OAuth Consent Screen Option
    3. Konfigurieren Sie den Consent Screen

      Klicken Sie auf create

      OAuth Consent Screen Benutzertyp-Auswahl mit External und Internal Optionen
  5. Füllen Sie die Informationen über Ihre App aus
    1. Beginnen wir mit den App Information

      App Information Bereich zeigt App Name und User Support Email Felder
      • Bitte geben Sie Ihren App Name ein
      • Geben Sie die user support email ein
      1. Sie KÖNNEN das App-Logo hinzufügen.

        App Logo Upload-Bereich im OAuth Consent Screen
      2. Sie SOLLTEN die App domain konfigurieren

        App Domain Konfigurationsbereich mit Feld für autorisierte Domains
      3. Sie MÜSSEN die E-Mail des Entwicklers angeben

        Developer Contact Information Bereich mit E-Mail-Feld
      4. Klicken Sie auf save and continue

        Save and Continue Schaltfläche am unteren Ende des Formulars
  6. Konfigurieren Sie die Scopes
    1. Klicken Sie auf add or remove scopes

      Add or remove scopes Schaltfläche im Scopes-Konfigurationsbildschirm
    2. Wählen Sie die folgenden Scopes aus und klicken Sie auf update

      Scope-Auswahl-Dialog mit ausgewählten E-Mail- und Profil-Scopes
    3. Klicken Sie auf save and continue

      Save and Continue Schaltfläche im Scopes-Bildschirm
  7. Fügen Sie einen Testbenutzer hinzu
    1. Klicken Sie auf add users Add users Schaltfläche im Testbenutzer-Bereich
    2. Geben Sie Ihre Google-E-Mail ein, drücken Sie Enter und klicken Sie auf add E-Mail-Eingabefeld und Add-Schaltfläche für Testbenutzer
    3. Klicken Sie auf save and continue Save and Continue Schaltfläche im Testbenutzer-Bildschirm
  8. Klicken Sie auf back to dashboard Back to dashboard Schaltfläche am unteren Ende der Abschlussseite
  9. Reichen Sie Ihre App zur Überprüfung ein

Unterschiede zwischen Online-Zugriff und Offline-Zugriff

Section titled “Unterschiede zwischen Online-Zugriff und Offline-Zugriff”

Es gibt mehrere Möglichkeiten, Google Login mit Capacitor zu verwenden. Hier ist eine Tabelle, die die Unterschiede zwischen den beiden zusammenfasst:

Online-ZugriffOffline-Zugriff
Erfordert ein Backend
Langlebiges Access Token
Einfache Einrichtung

Wenn Sie immer noch nicht wissen, welchen Sie wählen sollten, beachten Sie bitte die folgenden Szenarien:

  1. Sie möchten, dass sich der Benutzer anmeldet, unmittelbar danach werden Sie ihm ein benutzerdefiniertes JWT ausstellen. Ihre App wird KEINE Google APIs aufrufen

    Wählen Sie in diesem Fall Online-Zugriff.

  2. Ihre App wird einige Google APIs vom Client aufrufen, aber nie vom Backend

    Wählen Sie in diesem Fall Online-Zugriff

  3. Ihre App wird einige Google APIs vom Backend aufrufen, aber nur wenn der Benutzer die App aktiv verwendet

    Wählen Sie in diesem Fall Online-Zugriff

  4. Ihre App wird regelmäßig den Kalender des Benutzers überprüfen, auch wenn er die App nicht aktiv verwendet

    Wählen Sie in diesem Fall Offline-Zugriff

In diesem Teil des Tutorials zeige ich, wie Sie den Benutzer auf Ihrem Backend validieren.

Dieses Beispiel wird sehr einfach sein und basiert auf den folgenden Technologien:

Sie können den Code für dieses Beispiel hier finden

Wie Sie sehen können:

VS Code zeigt Google-Authentifizierungscode, der Tokens verifiziert

Die Idee ist ziemlich einfach. Sie senden eine einfache GET Anfrage an https://www.googleapis.com/oauth2/v3/tokeninfo und diese gibt Ihnen zurück, ob der Token gültig ist oder nicht, und wenn ja, gibt sie Ihnen die E-Mail des Benutzers. Sie gibt Ihnen auch einige andere Informationen über den Benutzer-Token

Google OAuth Playground zeigt Token-Informationsantwort mit Benutzerdetails

Von dort aus könnten Sie dem Benutzer Ihr eigenes JWT ausstellen oder eine Art Session-Cookie ausstellen. Die Möglichkeiten sind endlos für die endgültige Auth-Implementierung.

Wenn Sie Google API’s aufrufen möchten, empfehle ich dringend, sich Google’s OAuth 2.0 Playground anzusehen. Von dort aus können Sie leicht sehen, welche APIs Sie aufrufen können.

Verwendung von Offline-Zugriff mit Ihrem eigenen Backend

Section titled “Verwendung von Offline-Zugriff mit Ihrem eigenen Backend”

Um Online-Zugriff zu verwenden, benötigen Sie Folgendes:

  • Einen HTTP-Server

In diesem Beispiel werde ich die folgenden Technologien verwenden, um den Offline-Zugriff in meiner App bereitzustellen:

Der Code für dieses Beispiel ist hier zu finden

Was den Client-Code betrifft, sieht er so aus:

import { Capacitor } from '@capacitor/core';
import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';
import { usePopoutStore } from '@/popoutStore'; // <-- spezifisch für meine App
const baseURL = "[redacted]";
async function fullLogin() {
await SocialLogin.initialize({
google: {
webClientId: '[redacted]',
iOSClientId: '[redacted]',
iOSServerClientId: 'The same value as webClientId',
mode: 'offline' // <-- wichtig
}
})
const response = await SocialLogin.login({
provider: 'google',
options: {
forceRefreshToken: true // <-- wichtig
}
})
if (response.provider === 'google') {
const result = response.result as GoogleLoginOfflineResponse
const res = await fetch(`${baseURL}/auth/google_offline`, {
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
serverAuthCode: result.serverAuthCode,
platform: Capacitor.getPlatform()
}),
method: "POST"
})
if (res.status !== 200) {
popoutStore.popout("Full google login failed", "check console");
return
}
const { jwt } = await res.json();
const userinfo = await fetch(`${baseURL}/auth/get_google_user`, {
headers: {
Authorization: `Bearer ${jwt}`
}
})
if (userinfo.status !== 200) {
popoutStore.popout("Full google (userinfo) login failed", "check console");
return
}
popoutStore.popout("userinfo res", await userinfo.text());
}
}