Come abbiamo conquistato il Sign In with Apple in Parallels

Come abbiamo conquistato il Sign In with Apple in Parallels

Credo che dopo il WWDC 2019, molti abbiano sentito parlare di Sign In with Apple (abbreviato in SIWA). In questo articolo, parlerò delle difficoltà specifiche incontrate nell'integrare questa funzionalità nel nostro portale di licenze. Questo articolo non è proprio per chi desidera solo capire come funziona SIWA (per loro ho fornito alcuni link introduttivi alla fine del testo). In questo materiale, probabilmente, molti troveranno risposte a domande che possono sorgere durante l'integrazione del nuovo servizio di Apple.

Apple non consente reindirizzamenti personalizzati

In effetti, non vedo ancora una risposta a questa domanda nei forum per sviluppatori. La questione è la seguente: se desiderate utilizzare il SIWA JS API, cioè non lavorare tramite il SDK nativo a causa della mancanza di quest'ultimo per varie ragioni (non macOS/iOS o versione obsoleta di tali sistemi), avrete bisogno di un vostro portale pubblico, altrimenti non ci sarà modo. Perché nel portale WWDR dovete registrare e confermare di essere il proprietario del vostro dominio e solo su di esso possono essere applicati i reindirizzamenti consentiti da Apple:

Come abbiamo conquistato il Sign In with Apple in Parallels

Cosa fare se si desidera catturare un reindirizzamento nell'applicazione? Abbiamo risolto questo problema in modo molto semplice: abbiamo creato sul nostro portale un elenco di reindirizzamenti consentiti per le nostre applicazioni, che vengono richiesti prima di mostrare la pagina di autorizzazione SIWA. E semplicemente effettuiamo un reindirizzamento dal portale all'applicazione con i dati ricevuti da Apple. Facile e diretto.

Problemi con l'e-mail

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

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

Questi problemi non sono critici di per sé, se la connessione con il profilo sociale è stata creata con successo sul portale: l'identificatore utente è lo stesso ed è legato all'ID della squadra, ossia è unico per tutte le applicazioni del tuo team integrate con SIWA. Tuttavia, se l'accesso è avvenuto tramite Apple e si è verificato un errore lungo il percorso, non essendo stata creata la connessione sul portale, l'unica opzione è reindirizzare l'utente su appleid.apple.com, rompere la connessione con l'app e riprovare. In realtà, il problema si risolve redigendo un articolo KB appropriato e fornendo un collegamento ad esso.

Un problema più spiacevole è legato al fatto che Apple ha introdotto un nuovo concetto di e-mail proxy. Nel nostro caso, se l'utente aveva già un account sul portale con la propria e-mail autentica e durante il primo accesso tramite Apple sceglie l'opzione di nascondere l'e-mail, viene registrato un nuovo account con questa e-mail proxy, nel quale chiaramente non ci sono licenze, creando confusione per l'utente finale.

La soluzione a questo problema è piuttosto semplice: poiché l'identificatore dell'utente è lo stesso in SIWA e non dipende dalle opzioni/applicazioni selezionate per l'accesso, utilizziamo semplicemente uno script speciale per consentire il passaggio di questo legame da Apple a un altro account con l'email reale dell'utente, così da "recuperare i propri acquisti". Dopo questa procedura, l'utente inizia ad accedere a un altro account sul portale tramite SIWA e tutto funziona correttamente.

Nell'accesso tramite portale web non c'è l'icona dell'applicazione.

Per risolvere un altro problema, abbiamo contattato i rappresentanti di Apple e condividiamo le informazioni ricevute:

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

In altre parole, il concetto è il seguente: solo un'app macOS/iOS può essere posizionata alla testa del gruppo SIWA, alla quale possono essere aggiunti gli ID del servizio necessari per i portali. Pertanto, affinché l'icona venga visualizzata nell'app principale, devono essere pubblicate versioni in App Store con media, che hanno superato il controllo di Apple. L'icona sarà prelevata da lì.

Pertanto, se hai solo il portale e non l'app dal App Store, non avrai una bella icona, ma puoi aggirare la questione usando il nome dell'app — in assenza di media nell'app principale, queste informazioni vengono prese dalla Description service ID:
Come abbiamo conquistato il Sign In with Apple in Parallels
Come abbiamo conquistato il Sign In with Apple in Parallels

Il numero di elementi nel gruppo SIWA è limitato a 5

Attualmente non c'è soluzione a questo problema, a parte l'uso di più gruppi. Se ti mancano 6 identificatori: 1 per l'app principale e 5 per quelle dipendenti, quando tenterai di registrare il successivo riceverai un messaggio del genere:

Come abbiamo conquistato il Sign In with Apple in Parallels

Abbiamo creato gruppi per il nostro portale di licenze e per ciascuna delle applicazioni che operano con questo portale. Per quanto riguarda il limite degli slot, abbiamo già aperto un radar con Apple e stiamo aspettando una risposta.

Link utili

Il più utile link, a mio avviso, attraverso il quale ho fatto praticamente tutto. Una documentazione semi-utile da parte di Apple qui.

Enjoy! 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