Как ние в Parallels завладяхме Sign In с Apple

Как ние в Parallels завладяхме Sign In с Apple

Сигурно много хора вече е чуло за Sign In with Apple (съкратено SIWA) след WWDC 2019. В този материал ще споделя конкретно с какви подводни камъни се сблъскахме при интеграцията на този инструмент в нашия лицензионен портал. Тази статия не е точно за тези, които тепърва искат да се запознаят с SIWA (за тях съм включил няколко запознавателни линка в края на текста). В този материал много от вас вероятно ще намерят отговори на въпроси, които могат да възникнат при интеграцията на новата услуга на Apple.

Apple не позволява кастъм пренасочвания

Всъщност, все още не виждам отговор на този въпрос в разработчийските форуми. Същността е следната: ако искате да използвате SIWA JS API, т.е. да не работите през нативния SDK поради отсъствието на такъв по една или друга причина (не macOS/iOS или стара версия на тези системи), ще ви е необходим свой публичен портал, в противен случай не може да стане. Защото на WWDR портала трябва да регистрирате и потвърдите, че сте собственик на домейн, и само на него могат да бъдат прикрепени допустими според Apple пренасочвания.

Как ние в Parallels завладяхме Sign In с Apple

Какво да правим, ако желаем да прихванем пренасочването в приложението? Ние решихме този проблем изключително просто: създадохме на нашия портал списък с допустими пренасочвания за нашите приложения, които те заявяват преди показването на авторизационната страница на SIWA. Просто правим пренасочване от портала в приложението с данните, получени от Apple. Просто и ефективно.

Проблеми с e-mail

Нека разгледаме как решавахме проблемите с e-mail адреса на потребителя. На първо място, няма никакъв REST API, който да предостави тази информация от бекенда — само клиентът получава тези данни и може да ги предаде заедно с авторизационния код.

На второ място, информацията за името и e-mail адреса на потребителя се предава само веднъж, при първото влизане на потребителя в приложението чрез Apple, където потребителят избира опциите за споделяне на личните си данни.

Тези проблеми сами по себе не са критични, ако свързването със социалния профил е успешно установено на портала — идентификаторът на потребителя е един и същ и е свързан с Team ID — т.е. той е един за всички приложения на вашия екип, интегрирани с SIWA. Но ако логинът е направен чрез Apple, а по пътя е възникнала грешка и свързването на портала не е създадено, единственото решение е да се изпрати потребителят на appleid.apple.com, да се прекъсне връзката с приложението и да се опита отново. Всъщност проблемът се решава с написването на съответната статия KB и линк към нея.

Следващата по-неприятна проблема е свързана с новия концепт на Apple с proxy e-mail. В нашия случай, ако потребителят вече е бил на лицензионния портал със своя истински имейл и при първия логин през Apple избере опцията за скриване на e-mail, се регистрира нов акаунт с този proxy e-mail, в който очевидно няма никакви лицензи, което поставя крайните потребители в затруднение.

Решението на този проблем е доста просто: тъй като идентификаторът на потребителя е един и същ в SIWA и не зависи от избраните опции/приложение, в което се извършва sign in, просто с помощта на специален сценарий позволяваме да се превключи тази връзка с Apple на друг акаунт с истинския имейл на потребителя и по този начин „да възстановим своите покупки“. След тази процедура потребителят започва да влиза в друг акаунт на портала чрез SIWA и всичко работи правилно.

При Sign In през уеб портала няма икона на приложението

За решаване на друг проблем се обърнахме за разяснение към представителите на Apple, споделяме получените знания:

https://forums.developer.apple.com/thread/123054
Как ние в Parallels завладяхме Sign In с Apple

Т.е. смисълът е следният: начело на SIWA групите може да бъде поставено само macOS/iOS приложение, в което вече се добавят нужните service IDs на порталите. Съответно, за да се показва иконата на главното приложение, трябва да са публикувани в App Store версии с медии, преминали проверка в Apple. Иконата ще бъде взета оттам.

Съответно, ако имате само портал и приложения от App Store няма, то красивата икона няма да бъде, но с името на приложението можем да се справим — при отсъствие на медии в главното приложение тази информация се взима от описанието на service ID:
Как ние в Parallels завладяхме Sign In с Apple
Как ние в Parallels завладяхме Sign In с Apple

Броят на елементите в групата SIWA е ограничен до 5

В момента няма решение на този проблем, освен да се използват множество групи. Ако ви липсват 6 идентификатора: 1 основно приложение и 5 зависими, при опит за регистрация на следващия ще видите такова съобщение:

Как ние в Parallels завладяхме Sign In с Apple

Създадохме групи за нашия лицензионен портал и за всяко от приложенията, които работят с този портал. По отношение на ограниченията за слотове вече съобщихме на Apple и очакваме техния отговор.

Полезни връзки

Най-полезен линк, според мен, по който всъщност направих всичко. Полу-полезен документ от Apple тук..

Enjoy! Въпроси, мисли, идеи и предложения се приемат в коментарите.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster