Apple login su Android
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
La registrazione Apple su Android è un po' artigianale. Apple non fornisce alcun supporto ufficiale per Sign in with Apple La soluzione è leggermente artigianale poiché Apple non fornisce alcun supporto ufficiale per
Android utilizza attualmente una finestra di tab di Chrome per visualizzare un sito web OAuth2. Questa approccio presenta i seguenti problemi:
- Configurazione difficile
- È richiesta una backend
Capire il flusso su Android.
Sottosezione intitolata “Capire il flusso su Android.”Vorrei usare 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
Sottosezione intitolata “Creazione dell'ID del servizio”-
Accedi al Portale degli sviluppatori Apple.
-
Clicca su
Identifiers.
Devi 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 Applesia abilitato per la tua app- Clicca sul tuo app
- Assicurati che il
Sign in with Applesia abilitato
- Se non è abilitata, abbilitala.
- Clicca sul tuo app
-
Torna indietro a tutti
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 gli identificatori e clicca
Continuie.
-
Verifica i dettagli e clicca su
Register
-
Clicca sul servizio
-
Abilita l'
Sign in with Appleopzione
-
Configura il
Sign In with Apple
-
Assicurati che il
Primary App IDsia impostato sull'ID App configurato nel passaggio precedente
-
Aggiungi il dominio su cui ospiterai il tuo backend.
-
Confermate i dati e cliccate su
Done
-
Cliccate su
Continue
-
Cliccate su
Save
-
Creazione della chiave
Sezione intitolata “Creazione della chiave”-
Tornate a tutti
All Identifiers
-
Clicca su
Keys
-
Clicca sull'icona del plus
-
Nomi la tua chiave
-
Seleziona
Sign in with Applee cliccaConfigure
-
Selezionare l'ID App principale e premere
Save
-
Clicca su
Continue
-
Clicca su
Register
-
Copia l'ID della chiave e scarica la chiave.
-
Trova il file scaricato e salvalo nella cartella backend.
Ottieni l'ID del team
Sezione intitolata “Ottieni l'ID del team”Per utilizzare Login with Apple su Android, devi ottenere il Team IDsarà utilizzato in backend.
-
Vai a questo sito web e scorri verso il basso
-
Trova la
Team ID
Configurazione della reindirizzamento dell'app
Sezione intitolata “Configurazione della reindirizzamento dell'app”Come hai visto nel diagramma, il backend esegue un passaggio chiamato Redirect back to the appQuesto richiede modifiche manuali al tuo app
- Modifica il
AndroidManifest.xml-
Apri il file, userò
AndroidStudio
-
Trova il
MainActivitye aggiungi il seguente filtro di intento
<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-
Si prega di aprire il file MainActivity.java in Android Studio
MainActivity
-
code da aggiungere a MainActivity per gestire i 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
Sezione intitolata “Configurazione del backend”È richiesto un backend per Android, ma configurare un backend avrà anche un impatto su IOS. Esempio di backend è fornito qui
Questo esempio fornisce i seguenti:
- Un semplice database JSON
- Un modo per richiedere il JWT dai server di Apple
- Una semplice verifica del JWT
Considerando tutto ciò che ho detto in questo tutorial, ecco come fare env La sezione si presenterebbe così:
ANDROID_SERVICE_ID= ID del servizioIOS_SERVICE_ID= ID dell'app
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'utilizzo della login funzione non cambia, è la stessa di IOS. Per maggiori informazioni, si prega di consultare quella sezione. 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 più
-
Scegli
App IDsE selezionare continua
-
Clicca sul tipo
AppE selezionareContinue
-
Inserisci la descrizione e l'ID dell'app
-
Abilita
Sign with Appleabilità
-
Clicca
Continue
-
Conferma i dettagli e clicca
Register
Prosegui con Apple login su Android
Sottosezione intitolata “Prosegui con Apple login su Android”Se stai utilizzando Apple login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-social-login per la capacità nativa in Utilizza @capgo/capacitor-social-login, @capgo/capacitor-social-login per il dettaglio 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 di implementazione in Autenticazione a due fattori