
Mendoj se pas WWDC 2019, shumë njerëz tashmë kanë dëgjuar për Sign In with Apple (në mënyrë të shkurtër SIWA). Në këtë material do të flas për pengesat specifike me të cilat u përballëm gjatë integrimit të këtij shërbimi në portalin tonë të licencës. Ky artikull nuk është për ata që sapo kanë vendosur të kuptojnë SIWA (për ta kam dhënë disa lidhje njohëse në fund të tekstit). Në këtë material, shumë ndoshta do të gjejnë përgjigje për pyetjet që mund të lindin gjatë integrimit të shërbimit të ri të Apple.
Apple nuk lejon redirektime të personalizuara
Pra, ende nuk e shoh përgjigjen për këtë pyetje në forume për zhvilluesit. Eshtë kështu: nëse dëshironi të përdorni SIWA JS API, pra, të mos punoni përmes SDK të natyrshëm për shkak se nuk ekziston një i tillë për arsye të ndryshe (jo macOS/iOS ose version i vjetër i këtyre sistemeve), atëherë ju nevojitet portali juaj publik, përndryshe asnjë mënyrë. Sepse në portalin WWDR duhet të regjistroni dhe konfirmoni pronësinë e domenit tuaj dhe vetëm mbi të mund të vendosni redirektime të lejuara nga Apple:

Çfarë duhet bërë, nëse dëshiron të kapësh redirektimin në aplikacion? Ne zgjidhëm këtë problem shumë thjeshtë: krijuam në portalin tonë një listë të redirektimeve të lejuara për aplikacionet tona, të cilat i kërkojnë ato para shfaqjes së faqeve të autorizimit SIWA. Dhe thjesht bëjmë një redirektim nga portali në aplikacion me të dhënat e marra nga Apple. Thjesht dhe me dashuri.
Problemet me e-mailin
Le të shqyrtojmë se si e zgjidhëm problemin me e-mailin e përdoruesit. Së pari, nuk ka asnjë REST API që lejon marrjen e kësaj informacioni nga backend-i — vetëm klienti merr këto të dhëna dhe mund t'i transmetojë së bashku me kodin e autorizimit.
Së dyti, informacioni për emrin dhe e-mailin e përdoruesit kalon vetëm një herë, në hyrjen e parë të përdoruesit në aplikacion përmes Apple, ku përdoruesi zgjedh opsionet për ndarjen e të dhënave të tij personale.
Vetë këto probleme nuk janë të drejtpërdrejta kritike, nëse lidhja me profilin social është krijuar me sukses në portal - identifikuesi i përdoruesit është i njëjtë dhe i lidhur me ID-në e ekipit - pra, ai është një për të gjitha aplikacionet e ekipit tuaj, të integruara me SIWA. Por, nëse kyçja është kryer përmes Apple dhe ka ndodhur një gabim më pas, që ka penguar krijimin e lidhjes në portal, atëherë njëra e vetme është dërgimi i përdoruesit në appleid.apple.com, prishja e lidhjes me aplikacionin dhe provimi përsëri. Në thelb, problemi zgjidhet duke shkruar një artikull për KB dhe duke dhënë një lidhje për të.
Problemi tjetër më i pakëndshëm është se Apple ka krijuar një koncept të ri me proxy e-mail. Në rastin tonë, nëse përdoruesi ka qenë në portalin licencave me emailin e tij të vërtetë dhe në kyçjen e parë përmes Apple zgjidh opsionin për të fshehur e-mailin, regjistron një llogari të re me këtë proxy e-mail, në të cilin natyrisht nuk ka asnjë licencë, duke e vënë përdoruesin në një situatë të vështirë.
Zgjidhja e këtij problemi është mjaft e thjeshtë: pasi identifikuesi i përdoruesit është i njëjtë në SIWA dhe nuk varet nga opsionet/faqet e aplikacioneve të zgjedhura për kyçjen, ne thjesht me një skenar të veçantë lejojmë transferimin e kësaj lidhjeje me Apple në një llogari tjetër me emailin e vërtetë të përdoruesit dhe kështu "rikthejmë blerjet e tij". Pas kësaj procedure, përdoruesi fillon të hyjë në një llogari tjetër në portal përmes SIWA dhe gjithçka funksionon siç duhet.
Kur hyni përmes portalit në internet, nuk ka ikonë aplikacioni.
Për të zgjidhur një problem tjetër, ne iu drejtuam për sqarime përfaqësuesve të Apple, dhe po ndajmë njohuritë e marra:

Pra, kuptimi është si në vijim: në krye të grupit SIWA mund të vendoset vetëm një aplikacion macOS/iOS, në të cilin shtohen ID-të e nevojshme të shërbimeve të portaleve. Në përputhje me këtë, që ikona të shfaqet në aplikacionin kryesor, versionet e publikuara në App Store duhet të kenë media që kanë kaluar verifikimin në Apple. Ikona do të merret prej andej.
Prandaj, nëse keni vetëm portal dhe nuk ka aplikacioni në App Store, atëherë nuk do të ketë një ikonë të bukur, por mund të përballoni situatën me emrin e aplikacionit - në mungesë të mediave në aplikacionin kryesor, kjo informacioni merret nga Përshkrimi i ID-së së shërbimit:


Numri i elementeve në grupin SIWA është i kufizuar në 5
Aktualisht nuk ka një zgjidhje për këtë problem, përveç se të përdorni shumë grupe, nëse ju mungojnë 6 identifikues: 1 aplikacion kryesor dhe 5 të varur. Kur të përpiqeni të regjistroni të tjera, do të shihni këtë mesazh:

Krijuam grupe për portalin tonë të licencave dhe për secilin nga aplikacionet që operojnë me këtë portal. Në lidhje me kufizimin e vendeve, kishim ngritur një radar në Apple dhe presim përgjigjen e tyre.
Useful links
Më i dobishmi , sipas mendimit tim, me të cilin e bëra gjithçka në thelb. Dokumenti disi i dobishëm nga Apple .
Gëzojuni! Pyetje, mendime, ide dhe sugjerime pranohen në komentet.
Burimi: habr.com
