Google Login einrichten
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Einführung
Abschnitt „Einführung“In diesem Guide erfährst du, wie du Google Login mit Capgo Social Login einrichtest. Für die Einrichtung von Google Login benötigst du Folgendes:
- Ein Google-Konto
Allgemeines Setup
Abschnitt „Allgemeines Setup“In diesem Teil richten Sie den von Google angezeigten Login-Bildschirm ein.
- Bitte gehe zu console.cloud.google.com
- Klicke auf die Projektauswahl
- Falls Sie noch kein Projekt haben, bitte Neues Projekt erstellen.
- Klicken Sie auf
New project
- Benenne dein Projekt und klicke auf
Create
- Stelle sicher, dass du im richtigen Projekt bist
- Klicken Sie auf
- Beginne mit der Konfiguration der
OAuth consent screen-
Klicke auf die Suchleiste
-
Suche nach
OAuth consent screenund klicken Sie darauf
-
Einwilligungsbildschirm konfigurieren
Klicken Sie auf
create
-
- App-Informationen ausfüllen
-
Beginnen wir mit dem
App Information
- Bitte geben Sie Ihren
App Name - Gib die
user support email
-
Du KANN das App-Logo hinzufügen.
-
Du SOLLTE konfigurieren
App domain
-
Du MÜSSEN die E-Mail des Entwicklers angeben
-
Klicken Sie auf
save and continue
- Bitte geben Sie Ihren
-
- Scopes konfigurieren
-
Klicken Sie auf
add or remove scopes
-
Folgende Scopes auswählen und klicken
update
-
Klicken
save and continue
-
- Testbenutzer hinzufügen
- Klicken Sie auf
add users
- Gib deine Google-E-Mail-Adresse ein, drücke Enter und klicke auf
add
- Klicken
save and continue
- Klicken Sie auf
- Klicken
back to dashboard
- Reiche deine App zur Verifizierung ein
Unterschiede zwischen Online- und Offline-Zugriff
Abschnitt mit dem Titel „Unterschiede zwischen Online- und Offline-Zugriff“Es gibt mehrere Möglichkeiten, Google Login mit Capacitor zu verwenden. Die folgende Tabelle fasst die Unterschiede zwischen den beiden zusammen:
| Online-Zugriff | Offline-Zugriff | |
|---|---|---|
| Erfordert ein Backend | ❌ | ✅ |
| Langlebiges Access Token | ❌ | ✅ |
| Easy setup | ✅ | ❌ |
Wenn Sie noch nicht wissen, welche Option Sie wählen sollen, beachten Sie bitte die folgenden Szenarien:
-
Sie möchten, dass sich der User einloggt, und Sie werden ihm sofort ein eigenes JWT ausstellen. Ihre App ruft keine Google-APIs auf
Wählen Sie in diesem Fall Online-Zugriff.
-
Ihre App ruft einige Google-APIs vom Client aus auf, aber nie vom Backend
Wählen Sie in diesem Fall Online-Zugriff
-
Ihre App ruft einige Google-APIs vom Backend aus auf, aber nur, wenn der User die App aktiv nutzt
Wählen Sie in diesem Fall Online-Zugriff
-
Ihre App prüft den Kalender des Users regelmäßig, auch wenn er die App nicht aktiv nutzt
Wählen Sie in diesem Fall Offline-Zugriff
Ein Beispiel-Backend für Online-Zugriff
Abschnitt mit dem Titel „Ein Beispiel-Backend für Online-Zugriff“In diesem Teil des Tutorials zeige ich, wie du den Benutzer auf deinem Backend validierst.
Dieses Beispiel ist sehr einfach und basiert auf den folgenden Technologien:
Du findest den code für dieses Beispiel hier
Wie du sehen kannst:
Die Idee ist ziemlich einfach. Du sendest eine einfache GET Anfrage an https://www.googleapis.com/oauth2/v3/tokeninfo und diese gibt dir zurück, ob das Token gültig ist oder nicht. Falls ja, erhältst du die E-Mail-Adresse des Benutzers. Außerdem bekommst du weitere Informationen zum Benutzertoken.
Von dort aus kannst du dem Benutzer einen eigenen JWT ausstellen oder eine Art Session-Cookie setzen. Die Möglichkeiten für die finale Auth-Implementierung sind endlos.
Wenn du tatsächlich die API von Google aufrufen möchtest, empfehle ich dir dringend, einen Blick auf den Google OAuth 2.0 Playgroundzu werfen. Dort kannst du leicht sehen, welche APIs du aufrufen kannst.
Offline-Zugriff mit eigenem Backend nutzen
Abschnitt mit dem Titel „Offline-Zugriff mit eigenem Backend nutzen“Um Offline-Zugriff zu nutzen, benötigst du Folgendes:
- Einen HTTP-Server
In diesem Beispiel verwende ich die folgenden Technologien, um den Offline-Zugriff in meiner App bereitzustellen:
-
LowDb (eine einfache Datenbank)
Den code für dieses Beispiel findest du hier
Der code für den Client sieht 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()); }}Beachte, was hier fehlt: Es gibt keinen SocialLogin.refresh() Aufruf in der App. Das ist Absicht. Im Google-Offline-Modus erfolgt der Refresh, nachdem dein Backend austauscht serverAuthCode und den Refresh Token sicher speichert.
Weiter mit Google Login Setup
Abschnitt mit dem Titel „Weiter mit Google Login Setup“Wenn du es nutzt Google Login einrichten Um Authentifizierungs- und Account-Flows zu planen, verbinde es mit @capgo/capacitor-social-login verwenden für die native Funktion bei der Verwendung von @capgo/capacitor-social-login, @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails zur Zwei-Faktor-Authentifizierung.