Come abbiamo conquistato il Sign In con Apple in Parallels

Come abbiamo conquistato il Sign In con Apple in Parallels

Penso che dopo WWDC 2019 molti abbiano sentito parlare di Sign In with Apple (in breve SIWA). In questo articolo vi parlerò delle difficoltà specifiche che abbiamo incontrato nell'integrazione di questa funzionalità nel nostro portale di licenza. Questo articolo non è esattamente per coloro che hanno appena deciso di esplorare SIWA (per loro ho fornito un paio di link informativi alla fine del testo). In questo materiale, probabilmente molti troveranno risposte a domande che potrebbero sorgere durante l'integrazione del nuovo servizio Apple.

Apple non consente redirect personalizzati

In effetti, non vedo ancora risposte a questa domanda sui forum per sviluppatori. Il punto è il seguente: se volete utilizzare l'SIWA JS API, ovvero non lavorare tramite il SDK nativo a causa dell'assenza di quest'ultimo per vari motivi (non macOS/iOS o una versione obsoleta di questi sistemi), allora avete bisogno del vostro portale pubblico, altrimenti non è possibile. Perché sul portale WWDR è necessario registrare e confermare di essere il proprietario del proprio dominio e solo su di esso è possibile applicare redirect consentiti da Apple.

Come abbiamo conquistato il Sign In con Apple in Parallels

Cosa fare se si desidera interceptare il redirect nell'app? Abbiamo risolto questo problema in modo piuttosto semplice: abbiamo creato sulla nostra piattaforma un elenco di redirect consentiti per le nostre applicazioni, che richiedono prima di visualizzare la pagina di autorizzazione SIWA. E facciamo semplicemente un redirect dal portale all'app con i dati ricevuti da Apple. Semplice e diretto.

Problemi con l'e-mail

Vediamo come abbiamo risolto i problemi con l'e-mail dell'utente. Prima di tutto, non esiste alcuna API REST che consenta di ottenere queste informazioni dal backend: solo il client riceve questi dati e può inviarli insieme al codice di autorizzazione.

In secondo luogo, le informazioni sul nome e sull'e-mail dell'utente vengono trasmesse solo una volta, al primo accesso dell'utente all'app tramite Apple, dove l'utente sceglie le opzioni di condivisione dei propri dati personali.

Queste problematiche non sono particolarmente critiche se il collegamento con il profilo sociale è stato creato con successo sul portale: l'identificativo utente è lo stesso ed è collegato all'ID Team, cioè è unico per tutte le applicazioni del tuo team integrate con SIWA. Tuttavia, se il login è stato effettuato tramite Apple e si è verificato un errore nel processo che ha impedito la creazione del collegamento sul portale, l'unica opzione è indirizzare l'utente su appleid.apple.com, interrompere il collegamento con l'applicazione e riprovare. In effetti, il problema può essere risolto redigendo un articolo di assistenza e includendo un link ad esso.

Un altro problema più spiacevole è legato al fatto che Apple ha introdotto un nuovo concetto di e-mail proxy. Nel nostro caso, se l'utente era già sul portale di licenza con la sua vera e-mail e al primo login tramite Apple sceglie di nascondere l’e-mail, viene registrato un nuovo account con questa e-mail proxy, che ovviamente non ha alcuna licenza, mettendo l'utente finale in difficoltà.

La soluzione a questo problema è piuttosto semplice: poiché l'identificativo utente è lo stesso in SIWA e non dipende dalle opzioni/applicazioni selezionate per l'accesso, consentiamo tramite uno script speciale di trasferire il collegamento da Apple a un altro account con l'effettiva e-mail dell'utente e così «ripristinare i propri acquisti». Dopo questa procedura, l'utente inizia a entrare in un altro account sul portale tramite SIWA e tutto funziona correttamente.

Con l'accesso tramite il portale web non c'è l'icona dell'applicazione

Per risolvere un'altra problematica, ci siamo rivolti ai rappresentanti di Apple per avere chiarimenti e vogliamo condividere le conoscenze acquisite:

https://forums.developer.apple.com/thread/123054
Come abbiamo conquistato il Sign In con Apple in Parallels

In altre parole, il punto è il seguente: alla testa del gruppo SIWA può essere posizionata solo un'app macOS/iOS, alla quale vengono aggiunti i necessari ID servizio dei portali. Di conseguenza, affinché venga mostrata l'icona dell'app principale, devono esserci versioni pubblicate su App Store con media che hanno superato il controllo da parte di Apple. L'icona sarà prelevata da lì.

Pertanto, se hai solo un portale e non hai un'app dall'App Store, non ci sarà un'icona accattivante, ma puoi comunque gestire il nome dell'app: in assenza di media nell'app principale, queste informazioni vengono prelevate dalla descrizione dell'ID servizio:
Come abbiamo conquistato il Sign In con Apple in Parallels
Come abbiamo conquistato il Sign In con Apple in Parallels

Il numero di elementi nel gruppo SIWA è limitato a 5

Attualmente non esiste una soluzione a questo problema, tranne utilizzare più gruppi; se ti mancano 6 identificatori: 1 per l'app principale e 5 dipendenti, quando proverai a registrarne un altro vedrai questo messaggio:

Come abbiamo conquistato il Sign In con Apple in Parallels

Abbiamo creato gruppi per il nostro portale di licenza e per ciascuna delle applicazioni che operano con questo portale. In merito al limite di slot, abbiamo già aperto un radar in Apple e aspettiamo la loro risposta.

Link utili

Il più utile link, a mio avviso, su cui ho fatto tutto in sostanza. Documentazione semi-utile da Apple. qui.

Divertiti! Domande, pensieri, idee e suggerimenti sono benvenuti nei commenti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster