Zum Inhalt springen

Google Login Setup

GitHub

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

  • Eine Google-Konto

In diesem Teil stellen Sie die Anmeldebildschirm, der von Google angezeigt wird, ein.

  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 Namensfeld und Erstellen-Button
    3. Stellen Sie sicher, dass Sie das richtige Projekt ausgewählt haben Projektname wird im Selektor angezeigt, um die richtige Projektwahl anzuzeigen
  4. Beginnen Sie mit der Konfiguration des OAuth consent screen
    1. Klicken Sie auf die Suchleiste

      Google Console-Suchleiste
    2. Nach OAuth consent screen und klicken Sie darauf

      Suchergebnisse, die die Option für die Zustimmungsanzeige von OAuth anzeigen
    3. Die Zustimmungsanzeige konfigurieren

      Auf create

      Benutzerart zur Auswahl der Zustimmungsanzeige von OAuth mit externen und internen Optionen
  5. Die Informationen über Ihre App ausfüllen
    1. Mit der App-Informationen beginnen wir mit der App Information

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

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

        App-Domains-Konfigurationseinstellung mit dem Feld für autorisierte Domains konfigurieren
      3. Sie MUSSEN den E-Mail-Adresse des Entwicklers angeben

        Entwickler-Kontaktinformationen 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 Berechtigungen entfernen-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 auf der Scope-Bildschirm
  7. Hinzufügen eines Testnutzers
    1. Klicken Sie auf add users Hinzufügen von Benutzern-Button in der Testnutzer-Sektion
    2. Geben Sie Ihre Google-E-Mail ein, klicken Sie auf Enter und klicken Sie dann add E-Mail-Eingabefeld und Hinzufügen-Button für Testnutzer
    3. Klicken Sie save and continue Speichern und Fortsetzen-Button auf der Testnutzer-Bildschirm
  8. Klicken Sie back to dashboard Zurück zur Dashboard-Button am unteren Ende der Abschlussseite
  9. Bewerben Sie Ihre App zur Verifizierung

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
Benötigt einen Backend
Langzeitzugriffstoken
Einfache Einrichtung

Wenn Sie immer noch nicht wissen, welches Sie wählen sollten, überlegen Sie bitte die folgenden Szenarien:

  1. Sie möchten, dass sich der Benutzer anmeldet, sofort danach werden Sie ihm einen benutzerdefinierten JWT ausstellen. Ihre App wird NICHT Google APIs aufrufen

    In diesem Fall wählen Sie Online-Zugriff.

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

    In diesem Fall wählen Sie Online-Zugriff

  3. Ihre App ruft einige Google APIs vom Backend aus, aber nur dann, wenn der Benutzer aktiv mit der App arbeitet

    In diesem Fall wählen Sie Online-Zugriff

  4. Ihre App überprüft periodisch den Kalender des Benutzers, auch wenn er nicht aktiv mit der App arbeitet

    In diesem Fall wählen Sie Offline-Zugriff

In dieser Teile der Anleitung zeige ich Ihnen, wie Sie den Benutzer auf Ihrem Backend validieren können.

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

Sie können die code für dieses Beispiel hier

Wie Sie sehen können:

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

The idea is rather simple. You send a simple 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 es ist, gibt es Ihnen die E-Mail des Benutzers. Es gibt Ihnen 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 oder eine Art Sitzungskochnie ausstellen. Die Möglichkeiten sind endlos, für die endgültige Auth-Implementierung.

Wenn Sie Google API’s aufrufen möchten, würde ich Ihnen stark empfehlen, sich Google’s OAuth 2.0 Playgroundzuzusehen. Von dort aus können Sie leicht erkennen, welche APIs Sie aufrufen können.

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

  • Einen HTTP-Server

In diesem Beispiel werde ich die folgenden Technologien verwenden, um die Offline-Zugriffsfähigkeit in meiner App bereitzustellen:

Die code für dieses Beispiel finden Sie hier

Bei dem Client-code sieht es so aus:

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 fehlt ein SocialLogin.refresh() wird im App aufgerufen. Das ist absichtlich. In Googles Offline-Modus erfolgt die Aktualisierung nachdem Ihr Backend den Refresh-Token sicher speichert. serverAuthCode und speichert es sicher.

Wenn Sie " Google Login Setup " zur Planung der Authentifizierung und der Kontenflüsse verwenden, verbinden Sie es mit " Using @capgo/capacitor-social-login für die native Fähigkeit in Using @capgo/capacitor-social-login, " Using @capgo/capacitor-social-login für die Implementierungsdetails in Using @capgo/capacitor-social-login, " Using @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-Passkey, @capgo/capacitor-native-Biometrie für die Implementierungsdetails in @capgo/capacitor-native-Biometrie, und Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.