Come noi di Parallels abbiamo conquistato l'accesso con Apple

Come noi di Parallels abbiamo conquistato l'accesso con Apple

Penso che molte persone abbiano già sentito Sign In with Apple (SIWA in breve) dopo il WWDC 2019. In questo articolo ti dirò quali insidie ​​​​specifiche ho dovuto affrontare quando ho integrato questa cosa nel nostro portale di licenze. Questo articolo non è proprio per coloro che hanno appena deciso di comprendere SIWA (per loro ho fornito una serie di link didattici alla fine del testo). In questo materiale, molto probabilmente, molti troveranno le risposte alle domande che potrebbero sorgere durante l'integrazione del nuovo servizio Apple.

Apple non consente reindirizzamenti personalizzati

In realtà, non vedo ancora una risposta a questa domanda sui forum degli sviluppatori. Il punto è questo: se vuoi utilizzare l'API SIWA JS, ad es. non funzionano tramite l'SDK nativo a causa della mancanza di uno per un motivo o per l'altro (non macOS/iOS o una vecchia versione di questi sistemi), allora hai bisogno del tuo portale pubblico, altrimenti non c'è altro modo. Perché sul portale WWDR devi registrarti e confermare di essere il proprietario del tuo dominio, e solo su di esso puoi allegare reindirizzamenti accettabili dal punto di vista di Apple:

Come noi di Parallels abbiamo conquistato l'accesso con Apple

Cosa dovresti fare se desideri intercettare un reindirizzamento in un'applicazione? Abbiamo risolto questo problema in modo estremamente semplice: abbiamo creato sul nostro portale un elenco di reindirizzamenti accettabili per le nostre applicazioni, che queste ordinano prima di visualizzare la pagina di autorizzazione SIWA. E reindirizziamo semplicemente dal portale all'applicazione con i dati ricevuti da Apple. Semplice e arrabbiato.

Problemi con la posta elettronica

Diamo un'occhiata a come abbiamo risolto i problemi con l'e-mail dell'utente. Innanzitutto non esiste un'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 sull'e-mail dell'utente vengono trasmesse solo una volta, al primo accesso dell'utente all'applicazione tramite Apple, dove l'utente seleziona le opzioni per la condivisione dei suoi dati personali.

Di per sé questi problemi non sono direttamente critici se sul portale è stata creata con successo la connessione con il profilo social - l'ID utente è lo stesso ed è collegato al Team ID - cioè è lo stesso per tutte le applicazioni integrate SIWA del tuo team. Ma se l'accesso è stato effettuato tramite Apple e più avanti si è verificato un errore e la connessione al portale non è stata creata, l'unica opzione è inviare l'utente a appleid.apple.com, interrompere la connessione con l'applicazione e riprova. In realtà, il problema può essere risolto scrivendo l'articolo KB appropriato e collegandosi ad esso.

Il prossimo problema più spiacevole è legato al fatto che Apple ha inventato un nuovo concetto con la posta elettronica proxy. Nel nostro caso, se l'utente è già stato sul portale delle licenze con il suo vero sapone e, quando accede per la prima volta tramite Apple, seleziona l'opzione per nascondere l'e-mail, verrà registrato un nuovo account con questo proxy e- mail, che ovviamente non contiene alcuna licenza, il che mette l'utente finale in un vicolo cieco.

La soluzione a questo problema è abbastanza semplice: perché. Se l'ID utente è lo stesso in SIWA e non dipende dalle opzioni/applicazioni selezionate in cui viene effettuato l'accesso, utilizziamo semplicemente uno script speciale per consentire di trasferire questa connessione da Apple a un altro account con l'ID reale dell'utente sapone e così “ripristinare i tuoi acquisti” " Dopo questa procedura, l'utente inizia ad accedere ad un altro account sul portale tramite SIWA e per lui tutto funziona correttamente.

Non è presente l'icona dell'applicazione quando si accede tramite il portale web

Per risolvere un altro problema, ci siamo rivolti ai rappresentanti Apple per chiarimenti e condividere le nostre conoscenze:

https://forums.developer.apple.com/thread/123054
Come noi di Parallels abbiamo conquistato l'accesso con Apple

Quelli. il significato è il seguente: a capo del gruppo SIWA m.b. Viene consegnata solo l'applicazione macOS/iOS nella quale sono già aggiunti gli ID di servizio necessari dei portali. Di conseguenza, affinché venga visualizzata l'icona dell'applicazione principale. versioni pubblicate nell'App Store con supporti verificati da Apple. L'icona verrà presa da lì.

Di conseguenza, se hai solo un portale e nessuna applicazione dall'App Store, non avrai una bella icona, ma puoi farla franca con il nome dell'applicazione: se l'applicazione principale non ha supporti, questa informazione è tratto dall'ID servizio Descrizione:
Come noi di Parallels abbiamo conquistato l'accesso con Apple
Come noi di Parallels abbiamo conquistato l'accesso con Apple

Il numero di elementi in un gruppo SIWA è limitato a 5

Non c'è soluzione a questo problema al momento se non quella di utilizzare molti gruppi, se ti mancano 6 identificatori: 1 applicazione principale e 5 dipendenti, poi quando proverai a registrare quello successivo vedrai questo messaggio:

Come noi di Parallels abbiamo conquistato l'accesso con Apple

Abbiamo creato gruppi per il nostro portale delle licenze e per ciascuna delle applicazioni che interagiscono con questo portale. Per quanto riguarda le restrizioni sugli slot, abbiamo già aperto un radar con Apple e stiamo aspettando la loro risposta.

Link utili

Il più utile collegamento, secondo me, secondo il quale ho fatto tutto essenzialmente. Dock semi-utile di Apple qui.

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

Fonte: habr.com

Aggiungi un commento