Apple login su Android
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Il login con Apple su Android è poco pulito. Apple non offre supporto ufficiale per Sign in with Apple su Android, quindi la soluzione è un po' un workaround.
Attualmente Android usa le Chrome tabs per visualizzare un sito OAuth2. Questo approccio presenta queste sfide:
- Configurazione difficile
- È necessario un backend
Comprendere il flusso su Android.
Sezione intitolata “Capire il flusso su Android”.Uso un diagramma per spiegare il flusso su Android:
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS)
Ora che conosci le sfide e il flusso di lavoro, iniziamo la configurazione.
Creazione del Service ID
Sezione intitolata “Creazione del Service ID”-
Accedi con Portale Apple Developer.
-
Clicca su
Identifiers.
Dovresti vedere una schermata simile a questa:
- Assicurati che questo campo riporti
App IDs - Verifica di poter trovare il tuo App ID.
- Assicurati che questo campo riporti
-
Assicurati che la
Sign in with Applecapability sia abilitata per la tua app- Clicca sulla tua app
- Verifica che la
Sign in with Applecapability sia abilitata
- Se non è abilitata, attivala.
- Clicca sulla tua app
-
Torna all'elenco
All Identifiers
-
Clicca su
App Idse vai suServices IDs
-
Creare un nuovo identifier
-
Clicca sul pulsante +
-
Seleziona
Servcice IDse cliccare suContinue
-
Inserire descrizione e identifier e cliccare
Continuie.
-
Verifica i dettagli e clicca
Register
-
Clicca sul nuovo service creato
-
Abilita l'opzione
Sign in with Appleopzione
-
Configura il
Sign In with Apple
-
Verifica che la
Primary App IDè impostato sull'App ID configurato nel passaggio precedente
-
Aggiungi il dominio su cui ospiterai il tuo backend.
-
Conferma i dati e clicca su
Done
-
Clicca su
Continue
-
Clicca su
Save
-
Creazione della chiave
Sezione intitolata “Creazione della chiave”-
Torna all'elenco
All Identifiers
-
Clicca su
Keys
-
Clicca sull'icona plus
-
Dai un nome alla chiave
-
Seleziona
Sign in with Applee clicca suConfigure
-
Seleziona l'App ID principale e premi
Save
-
Clicca su
Continue
-
Clicca su
Register
-
Copia il Key ID e scarica la chiave.
-
Trova la chiave scaricata e salvala nella cartella del backend.
Ottenere il Team ID
Sezione intitolata “Ottenere il Team ID”Per poter utilizzare Login with Apple su Android, devi ottenere il Team ID. Verrà utilizzato nel backend.
-
Vai su questo sito web e scorri verso il basso
-
Trova il
Team ID
Configurazione del redirect dell'app
Sezione: “Configurazione dell'app redirect”Come visto nel diagramma, il backend esegue un passaggio chiamato Redirect back to the app. Questo richiede modifiche manuali alla tua app.
- Modifica il
AndroidManifest.xml-
Apri il file, userò
AndroidStudio
-
Trova il
MainActivitye aggiungi il seguente Intent filter
<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="capgo-demo-app" android:host="path" /></intent-filter>
-
- Modifica il
MainActivity-
Per favore, apri il
MainActivity
-
Aggiungi il seguente code:
@Overrideprotected void onNewIntent(Intent intent) {String action = intent.getAction();Uri data = intent.getData();if (Intent.ACTION_VIEW.equals(action) && data != null) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Apple Login Intent", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);return;}super.onNewIntent(intent);}
-
Configurazione backend
Sezione intitolata “Configurazione backend”Il backend è richiesto per Android, ma la sua configurazione influirà anche su iOS. Viene fornito un esempio di backend qui
Questo esempio include quanto segue:
- Un semplice database JSON
- Un metodo per richiedere il JWT dai server Apple
- Una semplice verifica del JWT
Considerando tutto quello che ho detto in questo tutorial, ecco come env dovrebbe apparire la sezione:
ANDROID_SERVICE_ID= Service IDIOS_SERVICE_ID= App ID
env: { PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8", KEY_ID: "U93M8LBQK3", TEAM_ID: "UVTJ336J2D", ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2", IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue", PORT: 3000, REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback", BASE_REDIRECT_URL: "capgo-demo-app://path"}Usare il plugin
Sezione intitolata “Usare il plugin”The usage of the login function non cambia, è identico a quello per iOS. Consulta quella sezione per maggiori dettagli. TUTTAVIA, il initialize il metodo cambia leggermente.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Creazione dell'app
Sezione: “Creazione dell'app”-
Se non hai ancora un App ID, clicca sul pulsante plus
-
Seleziona
App IDse clicca su continue
-
Clicca sul tipo
Appe cliccaContinue
-
Inserisci la descrizione e l'app ID
-
Abilita
Sign with Applecapability
-
Clicca su
Continue
-
Conferma i dettagli e clicca
Register
Continua con l'accesso Apple su Android
Sezione intitolata “Continua con l'accesso Apple su Android”Se stai usando Apple login su Android per pianificare i flussi di autenticazione e account, collegandolo a Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli sull'implementazione dell'autenticazione a due fattori.