Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Sa tingin ko marami na ang nakarinig ng Sign In with Apple (SIWA for short) pagkatapos ng WWDC 2019. Sa artikulong ito sasabihin ko sa iyo kung anong mga partikular na pitfalls ang kinailangan kong harapin kapag isinama ang bagay na ito sa aming portal ng paglilisensya. Ang artikulong ito ay hindi talaga para sa mga nagdesisyong unawain ang SIWA (para sa kanila ay nagbigay ako ng ilang pang-edukasyong link sa dulo ng teksto). Sa materyal na ito, malamang, marami ang makakahanap ng mga sagot sa mga tanong na maaaring lumitaw kapag isinasama ang bagong serbisyo ng Apple.

Hindi pinapayagan ng Apple ang mga custom na pag-redirect

Sa totoo lang, wala pa rin akong nakikitang sagot sa tanong na ito sa mga forum ng developer. Ang punto ay ito: kung gusto mong gamitin ang SIWA JS API, i.e. huwag gumana sa pamamagitan ng katutubong SDK dahil sa kakulangan ng isa para sa isang kadahilanan o iba pa (hindi macOS/iOS o isang lumang bersyon ng mga system na ito), pagkatapos ay kailangan mo ng iyong sariling pampublikong portal, kung hindi, walang ibang paraan. Dahil sa portal ng WWDR kailangan mong magparehistro at kumpirmahin na ikaw ang may-ari ng iyong domain, at dito lamang maaari kang mag-attach ng mga pag-redirect na katanggap-tanggap mula sa pananaw ng Apple:

Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Ano ang dapat mong gawin kung gusto mong harangin ang isang pag-redirect sa isang application? Nalutas namin ang problemang ito nang napakasimple: gumawa kami sa aming portal ng isang listahan ng mga katanggap-tanggap na pag-redirect para sa aming mga aplikasyon, na inorder nila bago ipakita ang pahina ng awtorisasyon ng SIWA. At nagre-redirect lang kami mula sa portal patungo sa application gamit ang data na natanggap mula sa Apple. Simple at galit.

Mga problema sa email

Tingnan natin kung paano namin nalutas ang mga problema sa email ng user. Una, walang REST API na nagbibigay-daan sa iyong makuha ang impormasyong ito mula sa backend - ang kliyente lang ang nakakatanggap ng data na ito at maaaring magpadala nito kasama ang authorization code.

Pangalawa, ang impormasyon tungkol sa pangalan ng gumagamit at e-mail ay ipinadala nang isang beses lamang, sa pinakaunang pag-login ng user sa application sa pamamagitan ng Apple, kung saan pinipili ng user ang mga opsyon para sa pagbabahagi ng kanyang personal na data.

Sa kanilang sarili, ang mga problemang ito ay hindi direktang kritikal kung ang koneksyon sa social profile ay matagumpay na nalikha sa portal - ang user ID ay pareho at naka-link sa Team ID - i.e. ito ay pareho para sa lahat ng SIWA-integrated application ng iyong team. Ngunit kung ang pag-login ay ginawa sa pamamagitan ng Apple, at higit pa sa landas ang isang error ay naganap at ang koneksyon sa portal ay hindi nilikha, kung gayon ang tanging pagpipilian ay ipadala ang user sa appleid.apple.com, sirain ang koneksyon sa application at subukan ulit. Sa totoo lang, malulutas ang problema sa pamamagitan ng pagsulat ng naaangkop na artikulo sa KB at pag-link dito.

Ang susunod na mas hindi kasiya-siyang problema ay nauugnay sa katotohanan na ang Apple ay dumating sa isang bagong konsepto na may proxy na e-mail. Sa aming kaso, kung ang gumagamit ay nakapunta na sa portal ng paglilisensya gamit ang kanyang tunay na sabon at, kapag nag-log in sa unang pagkakataon sa pamamagitan ng Apple, pinipili ang opsyon upang itago ang e-mail, isang bagong account ang nakarehistro sa proxy na e- mail, na malinaw na walang anumang mga lisensya, na naglalagay sa end user sa dead end.

Ang solusyon sa problemang ito ay medyo simple: dahil. Kung pareho ang user ID sa SIWA at hindi nakadepende sa mga napiling opsyon/application kung saan ginawa ang pag-sign in, gagamit lang kami ng espesyal na script para payagan kang ilipat ang koneksyon na ito mula sa Apple patungo sa isa pang account gamit ang tunay na user. sabon at sa gayon ay "ibalik ang iyong mga binili" " Pagkatapos ng pamamaraang ito, ang gumagamit ay nagsisimulang mag-access ng isa pang account sa portal sa pamamagitan ng SIWA at lahat ay gumagana nang tama para sa kanya.

Walang icon ng application kapag Nagsa-sign in sa pamamagitan ng web portal

Upang malutas ang isa pang problema, bumaling kami sa mga kinatawan ng Apple para sa paglilinaw at ibahagi ang aming kaalaman:

https://forums.developer.apple.com/thread/123054
Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Yung. ang kahulugan ay ang mga sumusunod: sa pinuno ng pangkat ng SIWA m.b. Tanging ang macOS/iOS application lang ang inihahatid, kung saan naidagdag na ang mga kinakailangang ID ng serbisyo ng mga portal. Alinsunod dito, upang maipakita ang icon ng pangunahing application. mga bersyon na na-publish sa App Store na may media na na-verify ng Apple. Ang icon ay kukunin mula doon.

Alinsunod dito, kung mayroon ka lamang portal at walang mga application mula sa App Store, hindi ka magkakaroon ng magandang icon, ngunit maaari kang makatakas sa pangalan ng application - kung ang pangunahing application ay walang media, ang impormasyong ito ay kinuha mula sa Description service ID:
Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple
Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Ang bilang ng mga elemento sa isang pangkat ng SIWA ay limitado sa 5

Walang solusyon sa problemang ito sa ngayon maliban sa paggamit ng maraming grupo, kung wala kang 6 na identifier: 1 head application at 5 dependent, pagkatapos ay kapag sinubukan mong irehistro ang susunod makikita mo ang mensaheng ito:

Kung paano namin nasakop sa Parallels ang Mag-sign In gamit ang Apple

Gumawa kami ng mga grupo para sa aming portal ng lisensya at para sa bawat isa sa mga application na nakikipag-ugnayan sa portal na ito. Tungkol sa mga paghihigpit sa slot, nagbukas na kami ng radar kasama ang Apple at hinihintay ang kanilang tugon.

Kapaki-pakinabang na mga link

Pinaka-kapaki-pakinabang link, sa aking opinyon, ayon sa kung saan ginawa ko ang lahat ng mahalagang bagay. Semi-useful dock mula sa Apple dito.

Enjoy! Ang mga tanong, kaisipan, ideya at mungkahi ay malugod na tinatanggap sa mga komento.

Pinagmulan: www.habr.com

Magdagdag ng komento