Zum Inhalt springen

Google Auth-Migration zu @capgo/social-login

GitHub

Diese Anleitung bietet umfassende Schritte für die Migration von @codetrix-studio/capacitor-google-auth zu @capgo/capacitor-social-login, um eine reibungslose Übergang und eine verbesserte Authentifizierungs-Erfahrung zu gewährleisten. Der neue Plugin vereint mehrere soziale Authentifizierungsanbieter unter einem einzigen, konsistenten API.

  1. Entfernen Sie das alte Paket:

    Terminalfenster
    npm uninstall @codetrix-studio/capacitor-google-auth
  2. Installieren Sie das neue Paket:

    Terminalfenster
    npm install @capgo/capacitor-social-login
    npx cap sync

Kritische ÄnderungDie aktualisierte Erweiterung erfordert die Verwendung einer Web-Client-ID auf allen Plattformen.

Sie benötigen:

  1. Erstellen Sie einen Web Client ID in Google Cloud Console, wenn Sie keinen haben (Wie Sie die Zugriffsberechtigungen erhalten)
  2. Verwenden Sie diesen Web Client ID in der webClientId Feld für alle Plattformen
  3. For Android, you still need to create an Android Client ID with your SHA1, but this is only for verification purposes - the token won’t be used (__CAPGO_KEEP_0__ Änderungen)

Importierungsänderungen

Zwischenablage kopieren
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
import { SocialLogin } from '@capgo/capacitor-social-login';

Die Einrichtung wandelt sich von einer einfachen GoogleAuth.initialize() Anrufung zu einer strukturierteren SocialLogin.initialize() mit einem verschachtelten Google-Konfiguration:

GoogleAuth.initialize({
clientId: 'CLIENT_ID.apps.googleusercontent.com',
scopes: ['profile', 'email'],
grantOfflineAccess: true,
});
await SocialLogin.initialize({
google: {
webClientId: 'WEB_CLIENT_ID.apps.googleusercontent.com', // Use Web Client ID for all platforms
iOSClientId: 'IOS_CLIENT_ID', // for iOS
mode: 'offline' // replaces grantOfflineAccess
}
});

Die Anmelde Methode wandelt sich von GoogleAuth.signIn() zu SocialLogin.login() Mit expliziter Anbieterangabe:

const user = await GoogleAuth.signIn();
const res = await SocialLogin.login({
provider: 'google',
options: {
scopes: ['email', 'profile'],
forceRefreshToken: true // if you need refresh token
}
});

Plattform-spezifische Änderungen

Abschnitt: Plattform-spezifische Änderungen
  1. Aktualisieren Sie MainActivity.java (Vollständiger Android-Einrichtungsleitfaden):
import 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;
public class MainActivity extends BridgeActivity {
public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {
@Override
public 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);
}
}
public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
}
  1. Keine größeren Änderungen erforderlich in AppDelegate.swift (iOS-Einrichtungsleitfaden)

  2. Aktualisieren Sie Ihre Konfiguration in capacitor.config.jsonWir verwenden es nicht in der neuen Plugin:

{
"plugins": {
"GoogleAuth": {
"scopes": ["profile", "email"],
"serverClientId": "xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
"forceCodeForRefreshToken": true
}
}
  1. Entfernen Sie die Google-Anmeldemeta-Tags aus Ihrem index.html Wenn Sie sie verwendet haben:
<meta name="google-signin-client_id" content="{your client id here}" />
<meta name="google-signin-scope" content="profile email" />

Die Authentifizierungsantwort liefert nun ein strukturiertes Objekt, das Informationen zum Anbieter, Zugriffs- und ID-Tokens sowie Benutzerprofil-Daten enthält:

interface GoogleLoginResponse {
provider: 'google';
result: {
accessToken: {
token: string;
expires: string;
// ... other token fields
} | null;
idToken: string | null;
profile: {
email: string | null;
familyName: string | null;
givenName: string | null;
id: string | null;
name: string | null;
imageUrl: string | null;
};
};
}

Die Antwortstruktur umfasst:

  • Anbieter: Identifiziert den Authentifizierungsanbieter ('google')
  • result.accessToken: Zugriffstoken-Daten mit Ablaufdatum
  • result.idToken: ID-Token für die Authentifizierung
  • Erfolgsprofil: Benutzerprofilinformationen einschließlich E-Mail, Name und Bild-URL

Das neue Paket unterstützt mehrere soziale Authentifizierungsanbieter über Google:

Diese einheitliche Vorgehensweise bietet:

  • Konsistente API bei allen Anbietern
  • Verbesserte TypeScript-Unterstützung
  • Bessere Fehlerbehandlung
  • Aktive Wartung und Community-Unterstützung

Überprüfen Sie Hauptdokumentation für detaillierte Einrichtungsanweisungen für diese zusätzlichen Anbieter.

Weitergehen Sie von der Google Auth-Migration zu @capgo/social-login

Abschnitt mit dem Titel “Weitergehen Sie von der Google Auth-Migration zu @capgo/social-login”

Wenn Sie diese Anwendung verwenden Migration von Google Auth zu @capgo/social-login um die Authentifizierung und die Kontenflüsse zu planen, verbinden Sie es mit Mit @capgo/capacitor-social-login Für die native Fähigkeit in Mit @capgo/capacitor-social-login, @capgo/capacitor-Social-Login Für die Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-Passwort Für die Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometrisch Für die Implementierungsdetails in @capgo/capacitor-native-biometrisch und Zweifaktor-Authentifizierung Für die Implementierungsdetails in Zweifaktor-Authentifizierung.