Hvordan vi erobrede Log ind med Apple på Parallels

Hvordan vi erobrede Log ind med Apple på Parallels

Jeg tror, ​​at mange mennesker har hørt om Sign In with Apple (forkortet SIWA) efter WWDC 2019. I denne artikel vil jeg fortælle dig om de specifikke faldgruber, vi måtte stå over for, da vi integrerede denne ting i vores licensportal. Denne artikel er egentlig ikke for dem, der lige har besluttet at finde ud af SIWA (til dem har jeg givet en række introduktionslinks i slutningen af ​​teksten). I dette materiale vil mange sandsynligvis finde svar på spørgsmål, der kan opstå, når de integrerer den nye Apple-tjeneste.

Apple tillader ikke tilpassede omdirigeringer

Faktisk har jeg stadig ikke set et svar på dette spørgsmål på udviklerfora. Pointen er denne: hvis du vil bruge SIWA JS API, dvs. ikke arbejde gennem det oprindelige SDK på grund af manglen på en af ​​den ene eller anden grund (ikke macOS/iOS eller en gammel version af disse systemer), så har du brug for din egen offentlige portal, der er ingen anden måde. For på WWDR-portalen skal du registrere og bekræfte, at du er ejer af dit domæne, og kun på det kan du vedhæfte omdirigeringer, der er acceptable fra Apples synspunkt:

Hvordan vi erobrede Log ind med Apple på Parallels

Hvad skal du gøre, hvis du vil opsnappe en omdirigering i en applikation? Vi løste dette problem på en meget enkel måde: Vi oprettede en liste over acceptable omdirigeringer til vores applikationer på vores portal, som de bestiller, før de viste SIWA-autorisationssiden. Og vi omdirigerer simpelthen fra portalen til applikationen med data modtaget fra Apple. Enkel og vred.

Problemer med e-mail

Lad os tage et kig på, hvordan vi løste problemer med brugerens e-mail. For det første er der ingen REST API, der giver dig mulighed for at få disse oplysninger fra backend - kun klienten modtager disse data og kan videregive dem sammen med autorisationskoden.

For det andet overføres brugerens navn og e-mail information kun én gang, ved brugerens allerførste login til applikationen gennem Apple, hvor brugeren vælger mulighederne for at dele sine personlige data.

Disse problemer i sig selv er ikke kritiske, hvis forbindelsen med den sociale profil blev oprettet på portalen - bruger-id'et er det samme og er knyttet til team-id'et - dvs. det er et for alle dit teams applikationer integreret med SIWA. Men hvis login blev foretaget gennem Apple, og så opstod der en fejl undervejs og forbindelsen på portalen ikke blev oprettet, så er den eneste mulighed at sende brugeren til appleid.apple.com, afbryde forbindelsen med applikationen og prøve igen. Faktisk løses problemet ved at skrive en tilsvarende KB-artikel og linke til den.

Det næste mere irriterende problem er, at Apple er kommet med et nyt koncept med proxy-e-mail. I vores tilfælde, hvis brugeren allerede har været på licensportalen med sin rigtige e-mail og under det første login via Apple vælger muligheden for at skjule e-mailen, bliver der registreret en ny konto med denne proxy-e-mail, som naturligvis ikke har nogen licenser, hvilket sætter slutbrugeren i en blindgyde.

Løsningen på dette problem er ganske simpel: Fordi Da bruger-id'et er det samme i SIWA og ikke afhænger af de valgte muligheder/applikation, hvori login udføres, så bruger vi blot et særligt script til at skifte dette link med Apple til en anden konto med brugerens rigtige email og derved "genoprette dine køb". Efter denne procedure begynder brugeren at få adgang til en anden konto på portalen gennem SIWA, og alt fungerer korrekt.

Der er intet applikationsikon, når du logger ind via webportalen

For at løse et andet problem henvendte vi os til Apple-repræsentanter for at få afklaring, og vi deler den viden, vi har fået:

https://forums.developer.apple.com/thread/123054
Hvordan vi erobrede Log ind med Apple på Parallels

Dem. meningen er denne: i spidsen for SIWA-gruppen er muligvis kun macOS/iOS-applikationen installeret, hvori de nødvendige service-id'er for portalerne allerede er tilføjet. For at ikonet skal vises i hovedapplikationen, skal det derfor være versioner offentliggjort i App Store med medier, der er blevet anmeldt af Apple. Ikonet tages derfra.

Følgelig, hvis du kun har en portal og ingen applikationer fra App Store, så vil der ikke være noget smukt ikon, men du kan komme rundt om navnet på applikationen - hvis hovedapplikationen ikke har noget medie, er disse oplysninger taget fra beskrivelsesservice-id'et:
Hvordan vi erobrede Log ind med Apple på Parallels
Hvordan vi erobrede Log ind med Apple på Parallels

Antallet af elementer i SIWA-gruppen er begrænset til 5

Der er i øjeblikket ingen løsning på dette problem udover at bruge flere grupper, hvis du mangler 6 identifikatorer: 1 hovedapplikation og 5 afhængige, så når du forsøger at registrere den næste, vil du se denne meddelelse:

Hvordan vi erobrede Log ind med Apple på Parallels

Vi har oprettet grupper til vores licensportal og for hver af de applikationer, der opererer med denne portal. Med hensyn til slotbegrænsningen har vi allerede startet en radar med Apple og venter på deres svar.

Nyttige links

Den mest nyttige link, efter min mening, ifølge hvilken jeg gjorde alt i det væsentlige. Halvbrugelig dock fra Apple her.

Nyde! Spørgsmål, tanker, ideer og forslag er velkomne i kommentarerne.

Kilde: www.habr.com

Tilføj en kommentar