Saltare al contenuto

Apple login su Android

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

Usami un diagramma per spiegare il flusso su Android:

Ora che sei a conoscenza dei problemi e del flusso, iniziamo la configurazione.

  1. Accedi al Portale dello Sviluppatore Apple.

  2. Clicca su Identifiers.

    Sezione Identificatori del Portale dello Sviluppatore Apple

    Dovresti vedere una schermata che assomiglia a questa:

    Schermata dei Identificatori del Portale dello Sviluppatore Apple
    1. Assicurati che questo campo dica App IDs
    2. Assicurati di poter trovare il tuo ID App.
  3. Assicurati che il Sign in with Apple capacità sia abilitata per la tua app

    1. Clicca sul tuo app Selezionando la tua app dalla lista
    2. Assicurati che il Sign in with Apple capacità sia abilitato Casella di controllo per l'abilitazione della capacità di accesso con Apple
    3. Se non è abilitato, abilitalo.
  4. Torna indietro a tutti All Identifiers

    Clicca su
  5. e vai a App Ids Identificatori di navigazione pulsante Services IDs

    Clicca su
  6. e vai al

    1. Sezione identificatori di servizi

      Crea un nuovo identificatore
    2. Clicca sul pulsante più Servcice IDs Pulsante per aggiungere nuovo ID di servizio Continue

      Scegli
    3. e clicca Continuie.

      Seleziona opzione ID di servizio
    4. Verifica i dettagli e clicca Register

      Conferma registrazione ID del servizio
    5. Clicca sul servizio creato di recente

      Seleziona ID del servizio creato di recente
    6. abilita l' Sign in with Apple opzione

      Abilitazione dell'accesso con Apple per ID del servizio
    7. Configura l' Sign In with Apple

      Pulsante di configurazione per l'accesso con Apple
    8. Assicurati che il Primary App ID è impostato sull'ID dell'app configurato nel passaggio precedente

      Impostazione del menu a discesa dell'ID dell'app principale
    9. Aggiungi il dominio su cui ospiterai il tuo backend.

      Impostazione dei campi dominio e URL di ritorno
    10. Conferma i dati e clicca Done

      Conferma la configurazione del dominio e della URL di ritorno
    11. Clicca su Continue

      Pulsante Continua per la configurazione del servizio
    12. Clicca su Save

      Pulsante Salva per la configurazione del servizio
  1. Torna indietro a tutti All Identifiers

    Pulsante Navigazione Identificatori Tutti
  2. Clicca su Keys

    Sezione Chiavi nel Portale dello Sviluppatore Apple
  3. Clicca sull'icona del plus

    Bottone per aggiungere una nuova chiave
  4. Nomi la tua chiave

    Inserimento del campo nome chiave
  5. Seleziona Sign in with Apple e clicca Configure

    Abilitare e configurare l'accesso con Apple per la chiave
  6. Seleziona l'ID App principale, e premi Save

    Seleziona l'ID App principale per la chiave
  7. Clicca su Continue

    Continua con il pulsante di configurazione della chiave
  8. Clicca su Register

    Registra il pulsante per la creazione della chiave
  9. Copia l'ID della chiave e scarica la chiave.

    Schermo per l'ID della chiave e il pulsante di download
  10. Trova la chiave scaricata e salvala nella cartella backend.

    File della chiave scaricata

Per utilizzare Login with Apple su Android, hai bisogno di ottenere il Team ID. Verrà utilizzato in backend.

  1. Vai a questo sito web e scorri verso il basso

  2. Trova la posizione dell'ID del team nel account del developer 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

. Ciò richiede modifiche manuali al tuo app. Redirect back to the appModifica il

  1. Apri il file, userò AndroidManifest.xml
    1. file AndroidManifest.xml in Android Studio AndroidStudio

      Trova il
    2. e aggiungi il seguente filtro di intento MainActivity filtro di intento __CAPGO_KEEP_0__ da aggiungere in MainActivity

      Intent filter code to add 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>
  2. Modifica il MainActivity
    1. Per favore apri il file MainActivity.java in Android Studio MainActivity

      Aggiungi il seguente __CAPGO_KEEP_0__:
    2. code per aggiungere a MainActivity per il gestione dei collegamenti profondi

      Code to add to MainActivity for handling deep links
      @Override
      protected 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);
      }

È 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 servizio
  • IOS_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"
}

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'
}
})
  1. Se non hai già un ID App, clicca sul pulsante plus

    Pulsante plus per l'aggiunta di un nuovo identificatore
  2. Seleziona App IDs e clicca su continua

    Selezione del tipo di ID App
  3. Clicca sul tipo App e clicca Continue

    Scegliendo il tipo di App
  4. Inserisci la descrizione e l'ID dell'app

    Inserendo la descrizione dell'app e l'ID bundle
  5. Abilita Sign with Apple abilità

    Abilitando l'abilità di accesso con Apple
  6. Clicca Continue

    Pulsante Continua per la registrazione dell'app
  7. Conferma i dettagli e clicca Register

    Confermando i dettagli di registrazione dell'app

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.