我想很多人在 WWDC 2019 之後就已經聽過 Sign In with Apple(簡稱 SIWA)了。 在這篇文章中,我將告訴您在將這個東西整合到我們的許可入口網站時我必須面對哪些具體陷阱。 本文並不適合那些剛剛決定了解 SIWA 的人(對於他們,我在文末提供了一些教育連結)。 在這份資料中,許多人很可能會找到整合新 Apple 服務時可能出現的問題的答案。
Apple 不允許自訂重定向
事實上,我在開發者論壇上仍然沒有看到這個問題的答案。 重點是:如果您想使用 SIWA JS API,即由於某種原因(不是 macOS/iOS 或這些系統的舊版本)而無法透過原生 SDK 工作,那麼您需要自己的公共門戶,否則沒有其他辦法。 因為在 WWDR 入口網站上,您需要註冊並確認您是網域的擁有者,並且只有在該入口網站上您才能附加從 Apple 角度來看可以接受的重定向:
如果您想攔截應用程式中的重新導向,該怎麼辦? 我們非常簡單地解決了這個問題:我們在入口網站上建立了應用程式可接受的重定向列表,他們在顯示 SIWA 授權頁面之前訂購這些重定向。 我們只需使用從 Apple 收到的資料從入口網站重定向到應用程式即可。 簡單又憤怒。
電子郵件問題
讓我們看看我們如何解決用戶電子郵件的問題。 首先,沒有 REST API 允許您從後端獲取此資訊 - 只有客戶端接收此資料並可以將其與授權代碼一起傳輸。
其次,有關用戶姓名和電子郵件的資訊僅傳輸一次,即用戶首次透過 Apple 登入應用程式時,用戶可以在其中選擇共享其個人資料的選項。
就其本身而言,如果在入口網站上成功創建了與社交配置文件的連接(用戶 ID 相同並且連結到團隊 ID),那麼這些問題並不直接重要——即對於您團隊的所有 SIWA 整合應用程式來說都是一樣的。 但是,如果登入是透過 Apple 進行的,並且沿著路徑進一步發生錯誤並且未建立門戶上的連接,則唯一的選擇是將用戶發送到 appleid.apple.com,斷開與應用程式的連接,然後再試一次。 實際上,可以透過編寫適當的知識庫文章並連結到它來解決該問題。
下一個更令人不快的問題與蘋果提出了代理電子郵件的新概念有關。 在我們的例子中,如果使用者已經使用他的真實肥皂訪問了許可門戶,並且在首次透過 Apple 登入時選擇了隱藏電子郵件的選項,則會使用該代理電子郵件註冊一個新帳戶郵件,顯然不包含任何許可證,這使最終用戶陷入了死胡同。
這個問題的解決方法很簡單:因為。 如果 SIWA 中的使用者 ID 相同,並且不依賴登入所選的選項/應用程序,那麼我們只需使用特殊腳本即可允許您將此連接從 Apple 切換到具有用戶真實身份的另一個帳戶肥皂,從而“恢復您的購買”” 完成此程序後,使用者開始透過 SIWA 存取入口網站上的另一個帳戶,並且一切正常。
透過入口網站登入時沒有應用程式圖標
為了解決另一個問題,我們向蘋果代表尋求澄清並分享我們的知識:
那些。 意義如下: SIWA 集團的負責人 m.b. 僅交付 macOS/iOS 應用程序,其中已新增了門戶的必要服務 ID。 因此,為了顯示主應用程式的圖示。 在 App Store 中發布的版本以及經過 Apple 驗證的媒體。 圖標將從那裡獲取。
因此,如果您只有一個門戶而沒有來自 App Store 的應用程序,那麼您將不會有漂亮的圖標,但您可以使用應用程式的名稱 - 如果主應用程式沒有媒體,則此資訊是取自描述服務ID:
SIWA 組中的元素數量限制為 5
目前沒有解決此問題的方法,除非使用多個群組,如果您缺少6 個識別碼:1 個頭應用程式和5 個依賴應用程序,那麼當您嘗試註冊下一個應用程式時,您將看到此訊息:
我們為我們的許可證入口網站以及與該入口網站互動的每個應用程式建立了群組。 關於插槽限制,我們已經與蘋果建立了雷達,正在等待他們的回應。
有用的鏈接
最有用
享受! 歡迎在評論中提出問題、想法、想法和建議。
來源: www.habr.com