Guida alla Migrazione da @codetrix-studio/capacitor-google-auth a @capgo/capacitor-social-login
Panoramica
Section titled “Panoramica”Questa guida fornisce passaggi completi per la migrazione da @codetrix-studio/capacitor-google-auth a @capgo/capacitor-social-login, garantendo una transizione fluida e un’esperienza di autenticazione migliorata. Il nuovo plugin unifica più provider di autenticazione social sotto un’API singola e coerente.
Installazione
Section titled “Installazione”-
Rimuovi il vecchio pacchetto:
Terminal window npm uninstall @codetrix-studio/capacitor-google-auth -
Installa il nuovo pacchetto:
Terminal window npm install @capgo/capacitor-social-loginnpx cap sync
Modifiche Importanti nella Configurazione di Google Auth
Section titled “Modifiche Importanti nella Configurazione di Google Auth”Requisito Web Client ID
Section titled “Requisito Web Client ID”Modifica Critica: Il plugin aggiornato richiede l’utilizzo di un Web Client ID su tutte le piattaforme.
Dovrai:
- Creare un Web Client ID nella Console Google Cloud se non ne hai uno (Come ottenere le credenziali)
- Utilizzare questo Web Client ID nel campo
webClientIdper tutte le piattaforme - Per Android, devi comunque creare un Android Client ID con il tuo SHA1, ma questo è solo per scopi di verifica - il token non verrà utilizzato (Guida alla configurazione Android)
Modifiche al Codice
Section titled “Modifiche al Codice”Modifiche all’Importazione
Section titled “Modifiche all’Importazione”import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';import { SocialLogin } from '@capgo/capacitor-social-login';Inizializzazione
Section titled “Inizializzazione”La configurazione si trasforma da una semplice chiamata GoogleAuth.initialize() a un SocialLogin.initialize() più strutturato con configurazione Google nidificata:
GoogleAuth.initialize({ clientId: 'CLIENT_ID.apps.googleusercontent.com', scopes: ['profile', 'email'], grantOfflineAccess: true,});
await SocialLogin.initialize({ google: { webClientId: 'WEB_CLIENT_ID.apps.googleusercontent.com', // Usa Web Client ID per tutte le piattaforme iOSClientId: 'IOS_CLIENT_ID', // per iOS mode: 'offline' // sostituisce grantOfflineAccess }});Accesso
Section titled “Accesso”Il metodo di login cambia da GoogleAuth.signIn() a SocialLogin.login() con specifica esplicita del provider:
const user = await GoogleAuth.signIn();const res = await SocialLogin.login({ provider: 'google', options: { scopes: ['email', 'profile'], forceRefreshToken: true // se hai bisogno del refresh token }});Modifiche Specifiche per Piattaforma
Section titled “Modifiche Specifiche per Piattaforma”Android
Section titled “Android”- Aggiorna il tuo
MainActivity.java(Guida completa alla configurazione Android):
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() {}}-
Nessuna modifica importante necessaria in AppDelegate.swift (Guida alla configurazione iOS)
-
Aggiorna la tua configurazione in
capacitor.config.json, non la usiamo nel nuovo plugin:
{ "plugins": { "GoogleAuth": { "scopes": ["profile", "email"], "serverClientId": "xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com", "forceCodeForRefreshToken": true }}- Rimuovi i meta tag di Google Sign-In dal tuo
index.htmlse li stavi usando:
<meta name="google-signin-client_id" content="{your client id here}" /><meta name="google-signin-scope" content="profile email" />Modifiche al Tipo di Risposta
Section titled “Modifiche al Tipo di Risposta”La risposta di autenticazione ora fornisce un oggetto strutturato contenente informazioni sul provider, token di accesso, token ID e dati del profilo utente:
interface GoogleLoginResponse { provider: 'google'; result: { accessToken: { token: string; expires: string; // ... altri campi token } | null; idToken: string | null; profile: { email: string | null; familyName: string | null; givenName: string | null; id: string | null; name: string | null; imageUrl: string | null; }; };}La struttura della risposta include:
- provider: Identifica il provider di autenticazione (
'google') - result.accessToken: Dettagli del token di accesso con scadenza
- result.idToken: Token ID per l’autenticazione
- result.profile: Informazioni del profilo utente inclusi email, nome e URL immagine
Capacità Aggiuntive
Section titled “Capacità Aggiuntive”Il nuovo pacchetto supporta più provider di autenticazione social oltre a Google:
Questo approccio unificato fornisce:
- API coerente tra tutti i provider
- Supporto TypeScript migliorato
- Gestione degli errori migliore
- Manutenzione attiva e supporto della comunità
Consulta la documentazione principale per istruzioni di configurazione dettagliate per questi provider aggiuntivi.