Apple login su Android
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
L'accesso Apple su Android è un po' furbesco. Apple non offre alcun supporto ufficiale per Sign in with Apple su Android, quindi la soluzione è leggermente furbesca.
Android utilizza attualmente un tab chrome per visualizzare un sito web OAuth2. Questo approccio presenta i seguenti problemi:
- Configurazione difficile
- È richiesto un backend
Capire il flusso su Android.
Sottosezione intitolata “Capire il flusso su Android.”Usami 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 a conoscenza dei problemi e del flusso, iniziamo la configurazione.
Creazione dell'ID del servizio
Sezione intitolata “Creazione dell'ID del servizio”-
Accedi al Portale dello Sviluppatore Apple.
-
Clicca su
Identifiers.
Dovresti vedere una schermata che assomiglia a questa:
- Assicurati che questo campo dica
App IDs - Assicurati di poter trovare il tuo ID App.
- Assicurati che questo campo dica
-
Assicurati che il
Sign in with Applecapacità sia abilitata per la tua app- Clicca sul tuo app
- Assicurati che il
Sign in with Applecapacità sia abilitato
- Se non è abilitato, abilitalo.
- Clicca sul tuo app
-
Torna indietro a tutti
All Identifiers
-
e vai a
App IdsIdentificatori di navigazione pulsanteServices IDs
-
e vai al
-
Sezione identificatori di servizi
-
Clicca sul pulsante più
Servcice IDsPulsante per aggiungere nuovo ID di servizioContinue
-
e clicca
Continuie.
-
Verifica i dettagli e clicca
Register
-
Clicca sul servizio creato di recente
-
abilita l'
Sign in with Appleopzione
-
Configura l'
Sign In with Apple
-
Assicurati che il
Primary App IDè impostato sull'ID dell'app 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
-
Crea la chiave
Sezione intitolata “Crea la chiave”-
Torna indietro a tutti
All Identifiers
-
Clicca su
Keys
-
Clicca sull'icona del plus
-
Nomi la tua chiave
-
Seleziona
Sign in with Applee cliccaConfigure
-
Seleziona l'ID App principale, 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 backend.
Ottenere l'ID del Team
Sezione intitolata “Ottenere l'ID del Team”Per utilizzare Login with Apple su Android, hai bisogno di ottenere il Team ID. Verrà utilizzato in backend.
-
Vai a questo sito web e scorri verso il basso
-
Trova la posizione dell'ID del team nel account del developer
Team ID
Sezione intitolata “Configurazione della reindirizzamento dell'app”
Come hai visto nel diagramma, il backend esegue un passaggio chiamato. Ciò richiede modifiche manuali al tuo app. Redirect back to the appModifica il
- Apri il file, userò
AndroidManifest.xml-
file AndroidManifest.xml in Android Studio
AndroidStudio
-
e aggiungi il seguente filtro di intento
MainActivityfiltro di intento __CAPGO_KEEP_0__ da aggiungere in MainActivity
<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 file MainActivity.java in Android Studio
MainActivity
-
code per aggiungere a MainActivity per il gestione dei collegamenti profondi
@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
Sottosezione intitolata “Configurazione del backend”È richiesta una backend per Android, ma la configurazione di una backend influenzerà anche IOS. Esempio di backend fornito Esempio
Esempio di backend fornito
- Esempio di backend fornito qui sopra
- Una via per richiedere il JWT dai server di Apple
- Una semplice verifica del JWT
Considerando tutto ciò che ho detto in questo tutorial, ecco come sarebbe apparso il env sezione:
ANDROID_SERVICE_ID= ID del servizioIOS_SERVICE_ID= ID dell'applicazione
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
Sezione intitolata “Utilizzo del plugin”L'uso della login La funzione non cambia, è la stessa di IOS. Per maggiori informazioni, prendi in considerazione la sezione relativa. TUTTAVIA, il initialize 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 ID App, clicca sul pulsante plus
-
Seleziona
App IDse clicca su continua
-
Clicca sul tipo
Appe cliccaContinue
-
Inserisci la descrizione e l'ID dell'app
-
Abilita
Sign with Appleabilità
-
Clicca
Continue
-
Conferma i dettagli e clicca
Register
Continua da Apple login su Android
Titolo della sezione “Continua da Apple login su Android”Se stai utilizzando Apple login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzando @capgo/capacitor-login-social per la capacità nativa in Utilizzando @capgo/capacitor-login-social, @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-biometrica-nativa per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.