Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

Gondolom sokak számára a WWDC 2019 után már ismerős a Sign In with Apple (rövidítve SIWA). A cikkemben arról fogok mesélni, hogy milyen konkrét buktatókkal kellett szembenéznünk, amikor ezt a funkciót integráltuk a licencportálunkba. Ez a cikk nem igazán a kezdők számára készült, akik most szeretnének megismerkedni a SIWA-val (számukra a szöveg végén adtam pár bevezető linket). Ebben az anyagban valószínűleg sokan választ találhatnak olyan kérdésekre, amelyek felmerülhetnek az Apple új szolgáltatásának integrálása során.

Az Apple nem engedélyezi a testreszabott átirányításokat.

Nos, a kérdésre még mindig nem látok választ a fejlesztői fórumokon. A lényeg a következő: ha szeretnéd használni a SIWA JS API-t, azaz nem kívánsz natív SDK-t használni bizonyos okok miatt (nem macOS/iOS vagy régi verziók miatt), akkor szükséged van a saját nyilvános portálodra, különben nem fog menni. Mert a WWDR portálon regisztrálni és megerősíteni kell, hogy te a tulajdonos vagy, a saját domained és csak arra a domainre lehet aplicálni az Apple által elfogadott átirányításokat.

Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

Mi a teendő, ha szeretnéd elkapni az átirányítást az alkalmazásban? Mi ezt a problémát nagyon egyszerűen megoldottuk: a saját portálunkon létrehoztunk egy elfogadható átirányítások listáját a saját alkalmazásaink számára, amelyeket azok kérnek az SIWA hitelesítési oldalának megjelenítése előtt. Csak átirányítjuk az adatokat az alkalmazásba az Apple-től kapott információkkal. Egyszerű és hatékony.

Problémák az e-maillel

Nézzük meg, hogyan oldottuk meg a felhasználói e-mail problémákat. Először is, nincs olyan REST API, amely lehetővé tenné az információk megszerzését a háttérrendszertől — csak a kliens szerzi be ezeket az adatokat, és tudja átadni azokat a hitelesítési kóddal együtt.

Másodszor, a felhasználó nevének és e-mailjének információja csak egyszer kerül átadásra, az első bejelentkezés alkalmával az alkalmazásban az Apple-en keresztül, ahol a felhasználó kiválasztja a személyes adatai megosztásának opcióit.

Ezek a problémák önmagukban nem kritikusak, ha a szociális profillal való kapcsolat sikeresen létrejött a portálon — a felhasználói azonosító ugyanaz, és a Team ID-hez van kötve — tehát az minden alkalmazás számára ugyanaz a csapatában, amelyek integrálva vannak a SIWA-val. De ha a bejelentkezés Apple-en keresztül történt, és az út során hiba lépett fel, így a portálon nem jött létre a kapcsolat, akkor az egyetlen lehetőség az, hogy a felhasználót az appleid.apple.com oldalra irányítjuk, megszakítjuk a kapcsolatot az alkalmazással, és megpróbáljuk újra. A probléma lényegében egy megfelelő KB cikk megírásával és arra való hivatkozással oldható meg.

A következő, kellemetlenebb probléma az, hogy az Apple új koncepciót talált ki a proxy e-maillel kapcsolatban. Az esetünkben, ha a felhasználó már a licencportálon volt a valódi e-mail címével, és az Apple-en keresztül történő első bejelentkezéskor a "rejtett e-mail" opciót választja, akkor egy új fiókot regisztrál ezzel a proxy e-maillel, amely nyilvánvalóan nem tartalmaz licencet, ami megdöbbenti a végfelhasználót.

Ennek a problémának a megoldása viszonylag egyszerű: mivel a felhasználói azonosító ugyanaz a SIWA-ban, és nem függ a választott opcióktól/alkalmazástól, amelybe bejelentkezik, egy speciális szkript segítségével lehetővé tesszük, hogy ezt a kapcsolatot az Apple-lel egy másik fiókhoz kapcsoljuk, amely a felhasználó valódi e-mail címével rendelkezik, így "helyreállíthatja vásárlásait". Ezen eljárás után a felhasználó a SIWA-n keresztül egy másik fiókba kerül a portálon, és minden jól működik számára.

A webportálon való bejelentkezéskor nincs alkalmazásikon.

Egy másik probléma megoldása érdekében megkerestük az Apple képviselőit, és megosztjuk a megszerzett tudást:

https://forums.developer.apple.com/thread/123054
Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

Tehát a lényeg a következő: a SIWA csoport élén csak macOS/iOS alkalmazás állhat, amelybe már a szükséges portálok service ID-jei kerülnek. Ennek megfelelően, hogy az ikon megjelenjen a fő alkalmazásnál, az App Storeban közzétett verziókkal kell rendelkeznie, amelyek médiával rendelkeznek és átmentek az Apple ellenőrzésén. Az ikon innen kerül átvételre.

Tehát ha csak portálja van, és az App Store-ból nincs alkalmazás, akkor nem lesz szép ikon, de a fiók nevével meg lehet oldani a dolgot — ha a fő alkalmazás médiája hiányzik, akkor ez az információ a service ID leírásából származik:
Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél
Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

A SIWA csoportban lévő elemek száma legfeljebb 5.

Jelen problémának nincs megoldása, hacsak nem használ nagyobb csoportokat. Ha hiányzik 6 azonosító: 1 főalkalmazás és 5 függő, a következő regisztráláskor a következő üzenetet fogja látni:

Hogyan hódítottuk meg a Sign In with Apple-t a Parallelsnél

Csoportokat hoztunk létre a licencportálunkhoz és minden alkalmazás számára, amely ezzel a portállal működik. A slotkorláttal kapcsolatban már indítottunk egy radarjelzést az Apple felé, és várjuk a válaszukat.

Hasznos linkek

A legnagyobb segítségű link, véleményem szerint, amely mentén az egészet csináltam. Félig hasznos dokumentáció az Apple-től itt.

Élvezd! Kérdéseket, gondolatokat, ötleteket és javaslatokat szívesen fogadunk a megjegyzésekben.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster