Zum Inhalt springen

Google-Anmeldeverfahren einrichten

In dieser Anleitung lernen Sie, wie Sie Google Login mit Capgo Social Login einrichten. Um Google Login einzurichten, benötigen Sie Folgendes:

  • Ein Google-Konto

In dieser Abschnitt wird die Anmeldung durch Google konfiguriert.

  1. Bitte gehen Sie zu console.cloud.google.com
  2. Klicken Sie auf den Projektselector Google Console Projektselector
  3. Wenn Sie noch keinen Projekt haben, bitte ein neues Projekt erstellen.
    1. Klicken Sie auf New project Neues Projekt Button in Google Console
    2. Benennen Sie Ihr Projekt und klicken Sie Create Projektbezeichnungsschirm mit Namefeld und Erstellen-Button
    3. Stellen Sie sicher, dass Sie sich im richtigen Projekt befinden Projektname wird im Selektor angezeigt, was eine korrekte Projektwahl anzeigt
  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 die OAuth-Konsent-Schirm-Option an
    3. Konfigurieren Sie die Konsent-Schirm

      Klicken Sie auf create

      OAuth-Zustimmungsbildschirm-Benutzerartenauswahl mit externen und internen Optionen
  5. Füllen Sie die Informationen über Ihre App
    1. Lassen Sie uns mit der App Information

      App-Informationen-Sektion beginnen, die App-Namen und Benutzer-Support-E-Mail-Felder zeigt
      • Bitte geben Sie Ihren App Name
      • Geben Sie ein user support email
      1. Sie KÖNNEN den App-Logo hinzufügen.

        App-Logo-Upload-Bereich in OAuth-Zustimmungsbildschirm
      2. Sie SOLLTE die App domain

        App-Domänenkonfiguration mit dem Feld für autorisierte Domains konfigurieren
      3. Sie MUSSEN den E-Mail-Adresse des Entwicklers im

        Entwickler-Kontaktinformationen-Sektion mit E-Mail-Feld
      4. Klicken Sie auf save and continue

        Speichern und Fortsetzen-Button am unteren Ende der Form
  6. Konfigurieren Sie die Berechtigungen
    1. Klicken Sie auf add or remove scopes

      Hinzufügen oder entfernen Sie Berechtigungen-Button in der Berechtigungen-Konfiguration
    2. Wählen Sie die folgenden Berechtigungen aus und klicken Sie update

      Berechtigungsdialog mit E-Mail- und Profilberechtigungen ausgewählt
    3. Klicken Sie save and continue

      Speichern und Fortsetzen-Button in der Berechtigungen-Seite
  7. Einen Testbenutzer hinzufügen
    1. Klicken Sie auf add users Hinzufügen-Button in der Testbenutzer-Sektion
    2. Geben Sie Ihre Google-E-Mail ein, drücken Sie Enter und klicken Sie add E-Mail-Eingabefeld und Hinzufügen-Button für Testnutzer
    3. Klicken Sie save and continue Speichern und Fortsetzen-Button in der Testnutzer-Ansicht
  8. Klicken Sie back to dashboard Zurück zur Dashboard-Button am unteren Ende der Abschlussseite
  9. Bewerben Sie Ihre App zur Verifizierung

Unterschiede zwischen Online-Zugriff und Offline-Zugriff

Abschnitt: Unterschiede zwischen Online-Zugriff und Offline-Zugriff

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

Online-ZugriffOffline-Zugriff
Benötigt einen Backend
Langzeitzugriffstoken
Einfache Einrichtung

Wenn Sie immer noch nicht wissen, welche Sie wählen sollten, überlegen Sie bitte folgende Szenarien:

  1. Der Benutzer soll sich anmelden, und direkt danach erhalten Sie ihm einen benutzerdefinierten JWT. Ihre App ruft die Google-APIs NICHT auf.

    Wählen Sie in diesem Fall den Online-Zugriff.

  2. Ihre App ruft einige Google-APIs vom Client aus, aber nie vom Backend.

    Wählen Sie in diesem Fall den Online-Zugriff.

  3. Ihre App ruft einige Google-APIs vom Backend aus, aber nur dann, wenn der Benutzer aktiv am App-Verwendung ist.

    Wählen Sie in diesem Fall den Online-Zugriff.

  4. Ihre App überprüft periodisch den Kalender des Benutzers, auch wenn er nicht aktiv am App-Verwendung ist.

    Wählen Sie in diesem Fall den Offline-Zugriff.

Ein Beispiel-Backend für den Online-Zugriff

Ein Beispiel-Backend für den Online-Zugriff

In diesem Teil der Anleitung zeige ich Ihnen, wie Sie den Benutzer auf Ihrem Backend validieren.

Dieses Beispiel wird sehr einfach sein und auf folgenden Technologien basieren: __CAPGO_KEEP_0__

Sie finden die code für dieses Beispiel hier

Wie Sie sehen können:

VS Code zeigt Google-Authentifizierung code , die Token überprüft

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

Google OAuth Playground zeigt Token-Informationen-Antwort mit Benutzerdetails

Von dort aus könnten Sie dem Benutzer Ihren eigenen JWT ausstellen oder eine Art Sitzungskochnie ausstellen. Die Möglichkeiten sind endlos, für die endgültige Auth-Implementierung

Wenn Sie Google API’s anrufen möchten, empfehle ich Ihnen, sich an Google’s OAuth 2.0-SpielplatzDort können Sie leicht erkennen, welche APIs aufgerufen werden können.

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

  • Ein HTTP-Server

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

Die code für dieses Beispiel finden Sie hier

Beachten Sie sich den Client code an:

import { Capacitor } from '@capacitor/core';
import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';
import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() {
await SocialLogin.initialize({
google: {
webClientId: '[redacted]',
iOSClientId: '[redacted]',
iOSServerClientId: 'The same value as webClientId',
mode: 'offline' // <-- important
}
})
const response = await SocialLogin.login({
provider: 'google',
options: {
forceRefreshToken: true // <-- important
}
})
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());
}
}

Beachten Sie, was hier fehlt: es gibt keine SocialLogin.refresh() Aufruf in der App. Das ist absichtlich. In Googles Offline-Modus erfolgt die Aktualisierung nachdem Ihr Backend den serverAuthCode Refresh-Token sicher gespeichert hat.