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”-
Login into the Portale Apple Developer.
-
Clicca su
Identifiers.
Dovresti vedere una schermata simile a questa:
- Assicurati che questo campo indichi
App IDs - Verifica di riuscire a trovare il tuo App ID.
- Assicurati che questo campo indichi
-
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 identificatore
-
Clicca sul pulsante +
-
Seleziona
Servcice IDse cliccaContinue
-
Inserisci una descrizione e un identificatore, poi fai clic su
Continuie.
-
Verifica i dettagli e fai clic su
Register
-
Clicca sul service appena creato
-
Abilita
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 cliccaConfigure
-
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 l'ID del team
Sezione intitolata “Ottenere l'ID del team”Per utilizzare Login with Apple su Android, devi ottenere l' 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 intitolata “Configurazione del redirect dell'app”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-
Please open the
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 del backend
Sezione intitolata “Configurazione del backend”Un backend è necessario per Android, ma configurarlo avrà effetti anche su iOS. Viene fornito un backend di esempio qui
Questo esempio fornisce quanto segue:
- Un semplice database JSON
- Un modo per richiedere il JWT dai server di 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= ID del servizioIOS_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 funzione non cambia, è lo stesso di iOS. Dai un'occhiata a quella sezione per maggiori info. TUTTAVIA, il initialize il metodo cambia un po'.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Creazione dell'app
Sezione intitolata “Creazione dell’app”-
Se non hai già un App ID, fai clic sul pulsante più
-
Seleziona
App IDse fai clic su Continua
-
Clicca su type
Appe cliccaContinue
-
Inserisci la descrizione e l'app ID
-
Abilita
Sign with Applecapability
-
Clicca su
Continue
-
Conferma i dettagli e clicca
Register
Continuare con il login Apple su Android
Sezione intitolata “Continuare con il login 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.