Login Apple su Android
Il login Apple su Android è complicato. Apple non ha supporto ufficiale per Sign in with Apple su Android, quindi la soluzione è leggermente hacky.
Android attualmente utilizza schede Chrome per visualizzare un sito web OAuth2. Questo approccio presenta le seguenti sfide:
- Configurazione difficile
- È richiesto un backend
Comprendere il flusso su Android
Section titled “Comprendere il flusso su Android”Lascia che usi 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 sei consapevole delle sfide e del flusso, iniziamo la configurazione.
Creazione del Service ID
Section titled “Creazione del Service ID”-
Accedi al Portale Sviluppatori Apple.
-
Clicca su
Identifiers.
Dovresti vedere una schermata simile a questa:

- Assicurati che questo campo dica
App IDs - Assicurati di poter trovare il tuo App ID.
- Assicurati che questo campo dica
-
Assicurati che la capacità
Sign in with Applesia abilitata per la tua app- Clicca sulla tua app

- Assicurati che la capacità
Sign in with Applesia abilitata
- Se non è abilitata, abilitala.
- Clicca sulla tua app
-
Torna a
All Identifiers
-
Clicca su
App Idse vai aServices IDs
-
Crea un nuovo identificatore
-
Clicca sul pulsante più

-
Seleziona
Servcice IDse cliccaContinue
-
Inserisci una descrizione e un identificatore e clicca
Continuie.
-
Verifica i dettagli e clicca
Register
-
Clicca sul servizio appena creato

-
Abilita l’opzione
Sign in with Apple
-
Configura il
Sign In with Apple
-
Assicurati che il
Primary App IDsia impostato sull’App ID configurato nel passaggio precedente
-
Aggiungi il dominio su cui ospiterai il tuo backend.

-
Conferma i dati e clicca
Done
-
Clicca su
Continue
-
Clicca su
Save
-
Creazione della chiave
Section titled “Creazione della chiave”-
Torna a
All Identifiers
-
Clicca su
Keys
-
Clicca sull’icona più

-
Dai un nome alla tua chiave

-
Seleziona
Sign in with Applee cliccaConfigure
-
Seleziona il primary App ID e premi
Save
-
Clicca su
Continue
-
Clicca su
Register
-
Copia l’ID della chiave e scarica la chiave.

-
Trova la chiave scaricata e salvala nella cartella del backend.

Ottenere il Team ID
Section titled “Ottenere il Team ID”Per utilizzare Login with Apple su Android, devi ottenere il Team ID. Sarà utilizzato nel backend.
-
Vai su questo sito web e scorri verso il basso
-
Trova il
Team ID
Configurazione del redirect dell’app
Section titled “Configurazione del redirect dell’app”Come hai 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 la
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 la
MainActivity-
Apri la
MainActivity
-
Aggiungi il seguente codice:
@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 del backend
Section titled “Configurazione del backend”È richiesto un backend per Android, ma configurare un backend influenzerà anche iOS. Un backend di esempio è fornito qui
Questo esempio fornisce quanto segue:
- Un semplice database JSON
- Un modo per richiedere il JWT dai server di Apple
- Una semplice verifica JWT
Dato tutto ciò che ho detto in questo tutorial, ecco come apparirebbe la sezione env:
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"}Utilizzo del plugin
Section titled “Utilizzo del plugin”L’utilizzo della funzione login non cambia, è lo stesso di iOS. Dai un’occhiata a quella sezione per maggiori informazioni. TUTTAVIA, il metodo initialize cambia un po’.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Creazione dell’app
Section titled “Creazione dell’app”-
Se non hai già un App ID, clicca sul pulsante più

-
Seleziona
App IDse clicca continue
-
Clicca sul tipo
Appe cliccaContinue
-
Inserisci la descrizione e l’app ID

-
Abilita la capacità
Sign with Apple
-
Clicca
Continue
-
Conferma i dettagli e clicca
Register