
Jeg tror mange allerede har hÞrt Sign In with Apple (forkortet SIWA) etter WWDC 2019. I denne artikkelen vil jeg fortelle deg hvilke spesifikke fallgruver jeg mÄtte mÞte da jeg integrerte denne tingen i lisensieringsportalen vÄr. Denne artikkelen er egentlig ikke for de som nettopp har bestemt seg for Ä forstÄ SIWA (for dem har jeg gitt en rekke pedagogiske lenker pÄ slutten av teksten). I dette materialet vil mest sannsynlig mange finne svar pÄ spÞrsmÄl som kan oppstÄ ved integrering av den nye Apple-tjenesten.
Apple tillater ikke egendefinerte omdirigeringer
Jeg har faktisk fortsatt ikke sett et svar pÄ dette spÞrsmÄlet pÄ utviklerfora. Hovedpoenget er dette: hvis du vil bruke SIWA JS API, dvs. ikke jobbe gjennom det innebygde SDK-et pÄ grunn av dets fravÊr av en eller annen grunn (ikke macOSHvis du bruker iOS eller eldre versjoner av disse systemene, trenger du din egen offentlige portal; det finnes ingen annen mÄte. Fordi pÄ WWDR-portalen mÄ du registrere og bekrefte eierskapet ditt av domenet ditt, og bare det domenet kan brukes til Apple-godkjente viderekoblinger:

Hva bÞr du gjÞre hvis du vil avskjÊre en omdirigering i en applikasjon? Vi lÞste dette problemet ekstremt enkelt: vi opprettet pÄ portalen vÄr en liste over akseptable omdirigeringer for applikasjonene vÄre, som de bestiller fÞr de viser SIWA-autorisasjonssiden. Og vi omdirigerer ganske enkelt fra portalen til applikasjonen med dataene mottatt fra Apple. Enkel og sint.
Problemer med e-post
La oss se pÄ hvordan vi lÞste problemer med brukerens e-post. For det fÞrste er det ingen REST API som lar deg fÄ denne informasjonen fra backend - bare klienten mottar disse dataene og kan overfÞre dem sammen med autorisasjonskoden.
For det andre overfÞres informasjon om brukerens navn og e-post kun én gang, til brukerens aller fÞrste pÄlogging til applikasjonen gjennom Apple, hvor brukeren velger alternativer for Ä dele sine personlige data.
I seg selv er ikke disse problemene direkte kritiske dersom forbindelsen med den sosiale profilen ble opprettet pĂ„ portalen â bruker-IDen er den samme og er knyttet til Team-ID-en â dvs. det er det samme for alle teamets SIWA-integrerte applikasjoner. Men hvis pĂ„loggingen ble gjort gjennom Apple, og lenger langs stien oppsto en feil og forbindelsen pĂ„ portalen ikke ble opprettet, sĂ„ er det eneste alternativet Ă„ sende brukeren til appleid.apple.com, bryte forbindelsen med applikasjonen og PrĂžv igjen. Faktisk kan problemet lĂžses ved Ă„ skrive den riktige KB-artikkelen og lenke til den.
Det neste mer ubehagelige problemet er knyttet til det faktum at Apple kom opp med et nytt konsept med proxy-e-post. I vÄrt tilfelle, hvis brukeren allerede har vÊrt pÄ lisensieringsportalen med sin ekte sÄpe og, nÄr han logger pÄ for fÞrste gang gjennom Apple, velger alternativet for Ä skjule e-posten, registreres en ny konto med denne proxy-e-posten. mail, som Äpenbart ikke inneholder noen lisenser, noe som setter sluttbrukeren i blindvei.
LÞsningen pÄ dette problemet er ganske enkel: fordi. Hvis bruker-IDen er den samme i SIWA og ikke er avhengig av de valgte alternativene/applikasjonen som pÄloggingen gjÞres til, bruker vi ganske enkelt et spesielt skript for Ä tillate deg Ä bytte denne tilkoblingen fra Apple til en annen konto med brukerens ekte sÄpe og derved "gjenopprette kjÞpene dine" " Etter denne prosedyren begynner brukeren Ä fÄ tilgang til en annen konto pÄ portalen gjennom SIWA, og alt fungerer som det skal for ham.
Det er ikke noe applikasjonsikon nÄr du logger pÄ via nettportalen
For Ä lÞse et annet problem, henvendte vi oss til Apple-representanter for Ä fÄ avklaring og dele vÄr kunnskap:

Det vil si at betydningen er fÞlgende: bare én kan settes i spissen for SIWA-gruppen macOSEn iOS-app som allerede har lagt til de nÞdvendige portaltjeneste-ID-ene. For at hovedappikonet skal vises, mÄ det derfor ha versjoner publisert i App Store med medier som er bekreftet av Apple. Ikonet hentes derfra.
FÞlgelig, hvis du bare har en portal og ingen applikasjoner fra App Store, vil du ikke ha et vakkert ikon, men du kan komme unna med navnet pÄ applikasjonen - hvis hovedapplikasjonen ikke har media, er denne informasjonen hentet fra beskrivelsestjeneste-IDen:


Antall elementer i en SIWA-gruppe er begrenset til 5
Det er ingen lÞsning pÄ dette problemet for Þyeblikket bortsett fra Ä bruke mange grupper, hvis du mangler 6 identifikatorer: 1 hovedapplikasjon og 5 avhengige, vil du se denne meldingen nÄr du prÞver Ä registrere den neste:

Vi har opprettet grupper for lisensportalen vÄr og for hver av applikasjonene som samhandler med denne portalen. NÄr det gjelder sporrestriksjoner, har vi allerede Äpnet en radar med Apple og venter pÄ svar.
Nyttige lenker
Mest brukbart , etter min mening, ifĂžlge hvilken jeg gjorde alt i hovedsak. Halvnyttig dock fra Apple .
Nyt! SpÞrsmÄl, tanker, ideer og forslag er velkommen i kommentarene.
Kilde: www.habr.com
