Kuidas me Parallelsis valitsesime Sign In with Apple

Kuidas me Parallelsis valitsesime Sign In with Apple

Usun, et paljudele on pärast WWDC 2019 kuulda jäänud Sign In with Apple (lühidalt SIWA). Selles artiklis räägin, milliste konkreetsete takistustega pidime silmitsi seisma, kui integreerisime selle funktsiooni meie litsentseeritud portaali. See artikkel ei ole mõeldud neile, kes alles mõtlevad SIWA kohta rohkem teada saada (neile olen lõpus lisanud mitmeid tutvustavaid linke). Usun, et paljud leiavad siit vastuseid küsimustele, mis võivad tekkida Apple'i uue teenuse integreerimise käigus.

Apple ei luba kohandatud ümbersuunamisi

Tegelikult ei näe ma sellele küsimusele vastust siiani arendajate foorumites. Asi on järgmises: kui soovite kasutada SIWA JS API-d, st töötada mitte natiivse SDK kaudu, kuna seda ühel või teisel põhjusel ei ole (mitte macOS/iOS või nende vanade versioonide tõttu), siis on teil vajalik oma avalik portaali, vastasel juhul ei saa te kuidagi. Kuna WWDR portaalis peate registreerima ja kinnitama, et olete oma domeeni omanik ning ainult sellele saab kinnitada Apple'i jaoks lubatud ümbersuunamised:

Kuidas me Parallelsis valitsesime Sign In with Apple

Kuidas käituda, kui soov on rakenduses ümber suunamist katkestada? Selle probleemi lahendasime äärmiselt lihtsalt: lõime oma portaalis lubatud ümber suunamiste nimekirja, mida meie rakendused tellivad enne SIWA autoriseerimislehe kuvamist. Ja suuname lihtsalt portaalist rakendusse andmed, mille oleme saanud Apple'ilt. Lihtne ja tõhus.

Probleemid e-posti teel

Vaatame, kuidas oleme lahendanud kasutaja e-posti probleeme. Esiteks ei ole olemas REST API-d, mis võimaldaks seda teavet tagasi saata — vaid klient saab need andmed ja saab need edastada koos autoriseerimiskoodiga.

Teiseks edastatakse kasutaja nime ja e-posti teave ainult üks kord, kasutaja esimese sisselogimise ajal rakendusse Apple'i kaudu, kus kasutaja valib oma isikuandmete jagamise valikud.

Needless to say, these issues aren't critical if the connection to the social profile was successfully established on the portal — the user ID is the same and linked to the Team ID, meaning it's the same across all your team's applications integrated with SIWA. However, if the login was done through Apple, and an error occurred down the line leading to a failed connection on the portal, the only option is to direct the user to appleid.apple.com, sever the link with the application, and try again. Essentially, the issue can be resolved by writing a corresponding KB article and linking to it.

The next, more unpleasant problem is related to the new concept Apple introduced with proxy email. In our case, if a user has previously accessed the licensing portal with their real email and chooses the option to hide their email upon first logging in with Apple, a new account is created with this proxy email, which obviously contains no licenses, leaving the end user confused.

Selle probleemi lahendamine on piisavalt lihtne: kuna kasutaja ID on SIWA-s sama ja ei sõltu valitud valikutest / rakendusest, kuhu sisse logitakse, võimaldame me spetsiaalse skripti abil selle sideme Apple'iga üle kanda teise konto reale, kus on kasutaja tõeline e-posti aadress, võimaldades seega "oma ostude taastamist". Pärast seda protseduuri jõuab kasutaja SIWA kaudu portaalis teise kontosse ja kõik töötab õigesti.

Veebiprotsessi kaudu sisselogimisel ei ole rakenduse ikooni

Teise probleemi lahendamiseks pöördusime Apple'i esindajate poole selgituste saamiseks, jagades saadud teadmisi:

https://forums.developer.apple.com/thread/123054
Kuidas me Parallelsis valitsesime Sign In with Apple

Ehk teisisõnu, SIWA grupi ees võib olla vaid macOS/iOS rakendus, kuhu lisatakse vajalikud teenuse ID-d portaalidest. Vastavalt sellele, et peamise rakenduse ikoon kuvanduks, peavad App Store'is olema avaldatud versioonid meediaelementidega, mis on Apple'i heakskiidu saanud. Ikoon võetakse sealt.

Seega, kui teil on ainult portaal ja rakendusi App Store'is ei ole, siis ei tule ilus ikoon, kuid rakenduse nimega saab välja tulla — kui peamise rakenduse media puudub, siis võetakse see info Description service ID-st.
Kuidas me Parallelsis valitsesime Sign In with Apple
Kuidas me Parallelsis valitsesime Sign In with Apple

SIWA grupi elementide arv on piiratud 5-ga.

Sellele probleemile ei ole hetkel lahendust, välja arvatud mitme grupi kasutamine. Kui teil ei piisa 6 identifikaatorist: 1 peamisest rakendusest ja 5 sõltuvast, siis järgmise registreerimise katse korral näete sellist teadet:

Kuidas me Parallelsis valitsesime Sign In with Apple

Oleme loonud rühmad meie litsentsiportaali jaoks ja igasuguste rakenduste jaoks, mis seda portaali haldavad. Me oleme juba Apple'ile radarisse läinud slotipiirangute osas ja ootame nende vastust.

Kasulikud lingid

Kõige kasulikum link, minu arvates, mille kaudu ma kõik põhjuslikult tegin. Poolkasulik dokumentatsioon Apple'ilt. siit.

Naudi! Küsimusi, mõtteid, ideid ja ettepanekuid oodatakse kommentaarides.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster