Як мы ў Parallels пакаралі Sign In with Apple

Як мы ў Parallels пакаралі Sign In with Apple

Думаю ў шматлікіх ужо пасля WWDC 2019 на слыху Sign In with Apple (коратка SIWA). У матэрыяле я распавяду з якімі менавіта падводнымі камянямі прыйшлося сутыкнуцца пры інтэграцыі гэтай штукенцыі ў наш ліцэнзійны партал. Гэты артыкул не зусім для тых, хто толькі вырашыў разабрацца з SIWA (для іх я даў шэраг азнаямленчых спасылак у канцы тэксту). У гэтым матэрыяле, хутчэй за ўсё, многія знойдуць адказы на пытанні, якія могуць узнікнуць пры інтэграцыі новага сэрвісу Apple.

Apple не дазваляе кастамныя рэдырэкты

Уласна, адказу на гэтае пытанне я да гэтага часу не бачу на дэвелаперскіх форумах. Іста ў наступным: калі вы захочаце скарыстацца SIWA JS API, г.зн. не працаваць праз натыўны SDK у выглядзе адсутнасці такога па тых ці іншых чынніках (не macOS/iOS або старая версія гэтых сістэм), то вам неабходзен свой публічны партал, інакш ніяк. Таму што на WWDR партале трэба зарэгістраваць і пацвердзіць тое, што вы з'яўляецеся уладальнікам, свой дамен і толькі на яго можна начапіць дапушчальныя з пункта гледжання Apple рэдырэкты:

Як мы ў Parallels пакаралі Sign In with 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 with Apple

Г.зн. сэнс у наступным: на чале SIWA групы м.б. пастаўлена толькі macOS/iOS дадатак, у якую ўжо дадаюцца патрэбныя service IDs парталаў. Адпаведна, каб паказваўся абразок у галаўнога дадатку д.б. апублікаваныя ў App Store версіі з media, якія прайшлі праверку ў Apple. Абразок будзе ўзяты адтуль.

Адпаведна, калі ў вас толькі партал і прыкладанні з App Store няма, то прыгожага абразка не будзе, але з імем прыкладання можна выкруціцца — пры адсутнасці media ў галоўнага прыкладання гэтая інфармацыя бярэцца з Description service ID:
Як мы ў Parallels пакаралі Sign In with Apple
Як мы ў Parallels пакаралі Sign In with Apple

Коль-ць элементаў у групе SIWA абмежавана 5

У гэтай праблемы няма на дадзены момант рашэння, акрамя як выкарыстоўваць мноства груп, калі вам бракуе 6 ідэнтыфікатараў: 1 галаўнога прыкладання і 5 залежных, то пры спробе рэгістрацыі наступнага вы ўбачыце такое паведамленне:

Як мы ў Parallels пакаралі Sign In with Apple

Мы стварылі групы для нашага ліцэнзійнага партала і для кожнага з прыкладанняў, якія аперуюць з гэтым парталам. Наконт абмежавання слотаў мы ўжо завялі радар у Apple і чакаем іх адказ.

Карысныя спасылкі

Самы карысны спасылка, на мой погляд, па якім я ўсё рабіў па сутнасці. Напаўкарысная дока ад Apple тут.

Enjoy! Пытанні, думкі, ідэі і прапановы прымаюцца ў каментарах.

Крыніца: habr.com

Дадаць каментар