Login Apple su Android
Copia un prompt di installazione con i passaggi di installazione e la guida markdown completa per questo plugin.
L'accesso Apple su Android è un po' hacky. Apple non offre alcun supporto ufficiale per Sign in with Apple su Android, quindi la soluzione è leggermente artificiale.
Attualmente Android utilizza un tab chrome per visualizzare un sito web OAuth2. Questa approccio presenta i seguenti problemi:
- Configurazione difficile
- È richiesta una backend
Capire il flusso su Android.
Sezione intitolata “Capire il flusso su Android.”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 siete 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 la
Sign in with Applecapacità sia abilitata per la tua app- Clicca sul tuo app
- Assicurati che la
Sign in with Applecapacità sia abilitata
- Se non è abilitata, abilitala.
- Clicca sul tuo app
-
Torna a tutti
All Identifiers
-
Clicca su
App Idse vai aServices IDs
-
Crea un nuovo identificatore
-
Clicca sul pulsante plus
-
Seleziona
Servcice IDse cliccaContinue
-
Inserisci una descrizione e degli identificatori e clicca
Continuie.
-
Verifica i dettagli e clicca
Register
-
Clicca sul servizio appena creato
-
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.
-
Confermando la configurazione del dominio e dell'URL di ritorno
Done
-
__CAPGO_KEEP_0__
Continue
-
Clicca su
Save
-
Creazione della chiave
Sezione intitolata “Creazione della 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, è necessario ottenere il Team ID. Viene utilizzato nel backend.
-
Vai a questo sito web e scorri verso il basso
-
Trova la
Team ID
Configurazione dell'app redirect
Sezione intitolata “Configurazione del redirect dell'app”Come hai visto nel diagramma, il backend esegue un passaggio chiamato Redirect back to the app. Ciò richiede modifiche manuali all'app.
- Modifica il
AndroidManifest.xml-
Apri il file, userò
AndroidStudio
-
Trova il
MainActivitye aggiungi il seguente filtro di intent
<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 del backend
Sottosezione intitolata “Configurazione del backend”È richiesto un backend per Android, ma configurare un backend influenzerà anche IOS. Esempio di backend fornito Ecco
Questo esempio fornisce i seguenti elementi:
- Un database JSON semplice
- 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 env questa sezione sarebbe stata formattata:
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
Sottosezione intitolata “Utilizzo del plugin”L'uso della login funzione non cambia, è lo stesso 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 dell'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 dall'accesso Apple su Android
Sezione intitolata “Continua dall'accesso Apple su Android”Se stai utilizzando Accesso Apple su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-login-social per la capacità nativa in Utilizza @capgo/capacitor-login-social Utilizza @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social Utilizza @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey Utilizza @capgo/capacitor-biometrica-nativa per il dettaglio di implementazione in @capgo/capacitor-biometrica-nativa, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori