
Mislim da je mnogima nakon WWDC 2019 na umu Sign In with Apple (skraćeno SIWA). U ovom materijalu ću objasniti s kojim smo se konkretnim preprekama suočili prilikom integracije ove funkcionalnosti u naš licencirani portal. Ovaj članak nije baš za one koji su tek odlučili istražiti SIWA (za njih sam u donjem dijelu teksta pružio nekoliko poveznica za upoznavanje). U ovom materijalu, vjerojatno će mnogi pronaći odgovore na pitanja koja se mogu pojaviti prilikom integracije nove Apple usluge.
Apple ne dozvoljava prilagođene preusmjeravanja
Na ovo pitanje još uvijek ne vidim odgovor na razvojnim forumima. Suština je sljedeća: ako želite koristiti SIWA JS API, tj. ne raditi putem nativnog SDK-a zbog nedostatka istog iz raznih razloga (ne macOS/iOS ili stara verzija tih sustava), bit će vam potreban vaš javni portal, inače ne može drugačije. Jer na WWDR portalu morate registrirati i potvrditi da ste vlasnik svog domena, a samo na njega možete postaviti prihvatljiva preusmjeravanja sa stajališta Apple-a:

Što učiniti ako želite presresti preusmjeravanje u aplikaciji? Ovaj problem smo riješili vrlo jednostavno: na našem portalu smo uveli popis dopuštenih preusmjeravanja za naše aplikacije, koje one naručuju prije prikazivanja autorizacijske stranice SIWA. I jednostavno radimo preusmjeravanje s portala u aplikaciju s podacima koje smo dobili od Apple-a. Jednostavno i efektivno.
Problemi s e-mailom
Pogledajmo kako smo rješavali probleme s korisničkim e-mailom. Prvo, ne postoji nikakav REST API koji omogućava dobivanje ovih informacija s backend-a — samo klijent dobiva te podatke i može ih prenijeti zajedno s autorizacijskim kodom.
Drugo, informacije o imenu i e-mailu korisnika prenose se samo jednom, prilikom prvog prijavljivanja korisnika u aplikaciju preko Apple-a, gdje korisnik bira opcije za dijeljenje svojih osobnih podataka.
Ove probleme same po sebi nisu previše kritične, ako je veza sa socijalnim profilom uspješno uspostavljena na portalu — identifikator korisnika je isti i povezan je s Team ID — tj. on je jedan za sve aplikacije vaše tima, integrirane sa SIWA. Međutim, ako je prijava obavljena putem Applea, a zatim se dogodila greška i veza na portalu nije uspostavljena, jedina opcija je preusmjeriti korisnika na appleid.apple.com, prekinuti vezu s aplikacijom i pokušati ponovo. U suštini, problem se rješava pisanjem odgovarajuće KB članka i linkom na njega.
Sljedeći, neugodniji problem odnosi se na to da je Apple uveo novi koncept s proxy e-mailom. U našem slučaju, ako je korisnik već bio na licencnom portalu s pravim e-mailom i pri prvom prijavljivanju putem Applea odabere opciju sakrij e-mail, registrira se novi račun s tim proxy e-mailom, u kojem očito nema nikakvih licenci, što stavlja krajnjeg korisnika u zabludu.
Rješenje ovog problema je prilično jednostavno: budući da je identifikator korisnika isti u SIWA i ne ovisi o odabranim opcijama/aplikaciji u koju se prijavljuje, jednostavno pomoću posebnog scenarija omogućavamo prebacivanje ove poveznice s Applea na drugi račun s pravim e-mailom korisnika i time „obnavljamo svoje kupovine“. Nakon ovog postupka, korisnik kroz SIWA počinje ulaziti u drugi račun na portalu i sve mu ispravno funkcionira.
Pri prijavi putem web portala nema ikone aplikacije.
Za rješavanje drugog problema obratili smo se predstavnicima Applea, dijelimo stečena znanja:

Dakle, smisao je sljedeći: na vrhu SIWA grupe može biti postavljena samo macOS/iOS aplikacija, u koju se već dodaju potrebni service ID-ovi portala. Stoga, kako bi se ikona prikazivala, glavna aplikacija mora imati objavljene verzije u App Store-u s medijima, koji su prošli provjeru u Appleu. Ikona će biti preuzeta odatle.
Prema tome, ako imate samo portal i aplikacija iz App Store-a ne postoji, tada lijepe ikone neće biti, ali se s imenom aplikacije može snaći — u nedostatku medija glavna aplikacija preuzima ove informacije iz opisa service ID-a:


Broj elemenata u SIWA grupi ograničen je na 5.
Trenutno nema rješenja za ovaj problem osim korištenja više grupa. Ako vam nedostaje 6 identifikatora: 1 glavnog aplikacija i 5 zavisnih, pri pokušaju registracije sljedećeg, vidjet ćete takvu poruku:

Stvorili smo grupe za naš licencni portal i za svaku od aplikacija koje rade s tim portalom. Što se tiče ograničenja slotova, već smo otvorili radar prema Appleu i čekamo njihov odgovor.
Koristitne veze
Najkorisnije , po mom mišljenju, putem kojeg sam sve suštinski radio. Polu korisna dokumentacija od Applea .
Uživajte! Pitanja, misli, ideje i prijedlozi su dobrodošli u komentarima.
Izvor: habr.com
