Google Login auf Android
Einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Einführung
Abschnitt mit dem Titel „Einführung“In dieser Anleitung lernen Sie, wie Sie Google-Login mit Capgo Social Login für Android einrichten können. Ich gehe davon aus, dass Sie bereits die allgemeine Einrichtungsanleitung.
Google-Login auf Android verwenden
Abschnitt mit dem Titel “Google-Anmeldung auf Android verwenden”In diesem Abschnitt lernen Sie, wie Sie Google-Anmeldung in Android einrichten.
-
Erstellen Sie eine Android-Kunden-ID.
-
Klicken Sie auf die Suchleiste
-
Suchen Sie nach
credentialsund klicken Sie auf dieAPIs and Serviceseine (Nummer 2 auf dem Screenshot)
-
Klicken Sie auf die
create credentials
-
Wählen Sie
OAuth client ID
-
Wählen Sie die
AndroidAnwendungstyp
-
Öffnen Sie Android Studio
-
Am unteren Ende des Navigators finden Sie die
Gradle Scripts
-
Finden Sie
build.gradlezur Modulapp
-
Kopieren Sie den
android.defaultConfig.applicationId. Dies wird Ihrpackage nameim Google-Konsolen
-
Jetzt öffnen Sie das Terminal. Stellen Sie sicher, dass Sie sich im
androidOrdner Ihres Apps befinden und das Kommando./gradlew signInReport
- Scrollen Sie nach oben in diesem Kommando. Sie sollten die folgende Zeile sehen. Kopieren Sie den
SHA1.
- Jetzt gehen Sie zurück zum Google-Konsolen. Geben Sie Ihren
applicationIdalsPackage Nameund Ihre SHA1 in das Zertifikatsfeld ein und klicken Siecreate
-
-
Erstellen Sie einen Webclient (dies ist erforderlich für Android)
-
Gehe zur
Create credentialsSeite in Google Console -
Legen Sie die Anwendungsart auf
Web
-
Klicken Sie auf
Create
-
Kopieren Sie die Client-ID, Sie verwenden diese als
webClientIdim Ihren JS/TS code
-
-
Passen Sie Ihren
MainActivity-
Öffnen Sie bitte Ihre App in Android Studio. Sie können es ausführen
cap open android -
Suchen
MainActivity.java-
Öffnen Sie das
appOrdner
-
Suchen
java
-
Finden Sie Ihren
MainActivity.javaund klicken Sie darauf
-
-
Ändern
MainActivity.java. Bitte fügen Sie folgenden code hinzuimport ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
Das Datei speichern
-
-
Verwenden Sie Google-Login in Ihrer Anwendung
-
Zuerst importieren Sie
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Initialisieren aufrufen. Dies sollte nur einmal aufgerufen werden.
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
Aufrufen
SocialLogin.loginSchritt 2: Eine Schaltfläche erstellen und auf Klick folgenden code ausführen.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Gehe in
-
und klicke auf die Plus-Taste
Device managerGerätemanager in Android Studio mit Plus-Taste hervorgehoben
-
Schaltfläche zum Erstellen eines virtuellen Geräts in der Virtual Device-Konfiguration
-
__CAPGO_KEEP_0__ = Google
Play Storeicon
Wie Sie sehen können, der
pixel 8diePlay StoreDienste -
Klicken Sie
next
-
Stellen Sie sicher, dass das Betriebssystem-Image vom Typ
Google Play. MUSSEN von TypGoogle Play
-
Klicken Sie auf Nächster Schritt
-
Bestätigen Sie Ihr Gerät. Sie können Ihrem Emulator einen Namen geben, wie Sie ihn bevorzugen
-
Gehe in
Device Managerund starte Ihren Simulator
-
Nachdem der Simulator gestartet ist, gehe in seine Einstellungen
-
Gehe in
Google Play
- Klicken
Updateund warten Sie etwa 60 Sekunden
-
-
Testen Sie Ihre Anwendung
Wenn Sie alles richtig gemacht haben, sollten Sie das Google-Login-Flow korrekt funktionieren sehen:
Problembehandlung
Abschnitt mit dem Titel „Problembehandlung“Wenn Sie Probleme haben, vergleichen Sie zunächst Ihre Anwendungskonfiguration mit den Werten im Google Cloud Console. Android-Feuerwehrsign-in-Fehler werden normalerweise durch einen Paketnamen, eine SHA-1- oder ein Client-ID-Missmatch verursacht.
Zertifikatsmanager, SHA-1 und Firebase
Abschnitt mit dem Titel „Zertifikatsmanager, SHA-1 und Firebase“Bei Android wird dieser Plugin Google-Zertifikatsmanager (androidx.credentials und Anmelden mit Google) verwendet, nicht das legacy GoogleSignInClient API. Logcat-Fehler wie GetCredentialCustomException: [28444] Developer console is not set up correctly kommen von dieser Stacks.
Filtern Sie Logcat mit GoogleProvider oder CapgoSocialLogin oder webClientId oder
oder
oderoder
| oder | oder | oder |
|---|---|---|
| oder | Server / Zielgruppe für ID-Token | webClientId in SocialLogin.initialize() |
| für Android, eine pro Signierungskey | Stellt sicher, dass Ihr APK berechtigt ist, Google zu kontaktieren | Nur im Google Cloud Console. Passen Sie diesen ID nicht an die webClientId |
Eine häufige Fehlinterpretation ist die Verwendung des Android-Client-IDs webClientId. Der Credential Manager erfordert dort den Web-Client-IDs. Der Android-Client benötigt nur die richtige Paketname und SHA-1 im Console registriert.
Erstellen Sie einen Android OAuth-Client für jede Zertifikat, die Ihre Builds signieren:
- Debug: von
./gradlew signingReportfür die Debug-Variante. - Release: von dem APK oder AAB, das Sie tatsächlich installieren.
- Play App Signing: von Play Console > App-Integrität > App-Signierungs-Zertifikat. Dies ist erforderlich für Play Store Builds, auch wenn Ihr Upload-Key-SHA-1 bereits registriert ist.
Die applicationId in android/app/build.gradle muss genau dem Android OAuth-Kundenpaketnamen entsprechen, einschließlich jeder .debug Suffix.
Wenn die OAuth-Konsensschirm in Testmodus ist, fügen Sie alle Google-Konten hinzu, die Sie unter Benutzergruppe > Testnutzer testen. email und profile Berechtigungen. Digitale Asset Links (assetlinks.json) sind für die Anmeldung mit Google über den Credential Manager nicht erforderlich.
Google Cloud-Änderungen können bis zu ein paar Stunden dauern, um sich zu verbreiten.
Fehler 28444: Entwicklerkonsol ist nicht korrekt eingerichtet
Abschnitt mit dem Titel 'Fehler 28444: Entwicklerkonsol ist nicht korrekt eingerichtet'Das bedeutet in der Regel, dass Google die Combination von installiertem APK-Signierungszertifikat, Paketname und webClientId. Arbeiten Sie durch diese Liste:
- Bestätigen
webClientIdist die Client-ID der Webanwendung und endet mit.apps.googleusercontent.com. - Führen Sie das Programm aus, reproduzieren Sie das Problem und lesen Sie Logcat für
GoogleProvider,signingSha1=, undpackage=. - In Google Cloud Console > Zertifikate, öffnen Sie Ihren Android OAuth-Kunden und überprüfen Sie den genauen Paketnamen und SHA-1.
- Wenn Sie ein Release-Build testen, registrieren Sie den SHA-1 von diesem Build, nicht nur den Debug-Keystore.
- Wenn das Programm über den Play Store verteilt wird, registrieren Sie auch den Play App Signing SHA-1.
- Stellen Sie sicher, dass Web- und Android-Kunden sich in demselben Google Cloud-Projekt befinden.
- Wenn die Einwilligungsschleife in Testing ist, bestätigen Sie, dass das Google-Konto ein Testkonto ist.
- Warte und versuche es erneut nach Änderungen im Konsole.
USER_CANCELLED Nachdem du auf einem fehlerhaft konfigurierten Debug-Build ein Konto ausgewählt hast, kann es immer noch zu einem SHA-1- oder Client-ID-Mismatch kommen. Behebe die Konsole-Einstellungen oben zuerst.
SHA-1 aus dem installierten Build extrahieren
Sektion mit dem Titel "SHA-1 aus dem installierten Build extrahieren"Debug- oder lokale Builds:
cd android && ./gradlew signingReportSignierter Release-APK:
keytool -printcert -jarfile android/app/release/app-release.apkFüge das SHA-1 zu einem Android OAuth-Klienten mit dem entsprechenden Paketnamen hinzu, installiere dieselbe signierte APK erneut und testen Sie es erneut:
adb install android/app/release/app-release.apkDie Anmeldung lesen
Abschnitt mit dem Titel „Die Anmeldung lesen“Token sind untergeordnet unter result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Für Firebase Auth, erstellen Sie mit diesen die Anmeldeinformationen idToken und verwenden Sie den Webclient-Id als webClientId in initialize.
Wenn Sie das Entwickler-SHA-1-Zertifikat nicht erhalten können, versuchen Sie einen benutzerdefinierten Keystore. Dieser Issue-Kommentar erklärt, wie Sie einen Keystore zu Ihrem Projekt hinzufügen können.
Fortsetzen Sie von Google Login auf Android
Abschnitt mit dem Titel “Weiter mit Google Login auf Android”Wenn Sie Google Login auf Android verwenden Google Login auf Android um die Authentifizierung und die Kontenflüsse zu planen, verbinden Sie es mit Verwenden Sie @capgo/capacitor-social-login Verwenden Sie @capgo/capacitor-social-login für die native Fähigkeit in Verwenden Sie @capgo/capacitor-social-login @capgo/capacitor-social-login Verwenden Sie @capgo/capacitor-social-login für die Implementierungsdetail in @capgo/capacitor-social-login @capgo/capacitor-passkey Verwenden Sie @capgo/capacitor-passkey für die Implementierungsdetail in @capgo/capacitor-passkey @capgo/capacitor-native-biometric Verwenden Sie @capgo/capacitor-native-biometric für die Implementierungsdetail in @capgo/capacitor-native-biometric Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.