公司要開發(fā)新的APP,涉及到第三方登錄饶氏。之前看過WWDC2019視頻猖凛,了解到如果新的APP(目前為止未在AppStore發(fā)布過的)如果有第三方登錄功能,那么必須適配蘋果推出的Sign In With Apple才能被審核通過磺樱。所以就根據(jù)蘋果文檔和WWDC2019視頻,總結(jié)出以下操作方案婆咸,僅供大家參考竹捉。
1、什么是Sign In With Apple
蘋果在WWDC2019推出了Sign In With Apple(以下簡稱SIWA)尚骄,即用戶通過端上的Apple ID就可以登錄第三方應(yīng)用块差。目的是為用戶提供一種快速,安全且隱私友好的方式來設(shè)置帳戶并開始使用您的服務(wù)乖仇。這次蘋果提供的Sign In With Apple快捷登錄憾儒,也是通過這個跨平臺的功能使得在這個生態(tài)環(huán)境中的應(yīng)用操作更加方便簡潔询兴。詳情請參考:WWDC2019 Sign In With Apple 視頻
官方文檔介紹:https://developer.apple.com/cn/sign-in-with-apple/get-started/
? ? ? ? ? ? ? ? ? ? ? ? ??https://developer.apple.com/cn/news/?id=09122019b
通過視頻觀看乃沙,蘋果反復(fù)的闡述安全性,包括本身Apple ID具備的雙重認(rèn)證诗舰、用戶可以隱藏自己的Apple ID等警儒,這些都使得用戶隱私得到了最大的保護(hù),雖然我們依然可以通過API來獲取到諸如用戶姓名這樣的信息,但是最為關(guān)鍵的user則是毫無規(guī)律可言的(至少在我們開發(fā)者看來)蜀铲,而這個user則為同一個開發(fā)者賬號下的所有app中保持有且僅有一個边琉,這個特點(diǎn)看上去能夠和已有的帳號體系打通。
Sign In With Apple特點(diǎn):
Streamlined account setup(簡化帳戶設(shè)置)
Verified email addresses(驗(yàn)證電子郵件地址)
Built-in security(內(nèi)置安全性)
Anti-fraud(反欺詐):包括:
Cross-platform(跨平臺):支持蘋果生態(tài)的所有系統(tǒng)记劝。eg: iOS变姨,macOS, watchOS, tvOS, JavaScript等。
接入Sign In With Apple的好處:應(yīng)用程序或網(wǎng)站中顯示“使用Apple登錄”按鈕意味著人們可以使用他們已有的Apple ID進(jìn)行點(diǎn)擊或登錄厌丑,而無需填寫表格定欧,驗(yàn)證電子郵件地址和選擇密碼。使用Apple登錄提供了一種新的怒竿,更私密的方式砍鸠,可以簡單快速地登錄應(yīng)用程序和網(wǎng)站,同時為人們提供他們可以信賴的一致登錄體驗(yàn)耕驰,以及不必記住多個帳戶和密碼的便利爷辱。如果您選擇詢問姓名和電子郵件地址,人們可以選擇保留其電子郵件地址的私密性朦肘,而共享一個唯一的隨機(jī)電子郵件地址饭弓。有關(guān)開發(fā)人員的指導(dǎo),請參閱AuthenticationServices媒抠。
2示启、如何接入Sign In With Apple
2.1:系統(tǒng)配置:蘋果開發(fā)文檔明確規(guī)定:蘋果電腦系統(tǒng)macos(10.15)(嚇的我趕緊升級我的筆記本系統(tǒng)),手機(jī)iOS系統(tǒng)ios(13.0)(毫不猶豫的升級)领舰。由于只有Xcode11才支持Sign In With Apple接入代碼的開發(fā)夫嗓,所以Xcode我升級到了11.1正式版。
上面三個條件缺一不可冲秽。
2.2:工程配置
2.2.1按照下圖所示
2.2.2:點(diǎn)擊 “+”號舍咖,在彈出的框里搜索 Sign In With Apple,然后雙擊菜單中的 Sign In With Appple锉桑,添加到工程中排霉。
2.2.3:添加成功Sign In With Apple,如下圖所示
2.2.4:如果項(xiàng)目中沒有?AuthenticationServices.framework 民轴,請務(wù)必添加?AuthenticationServices.framework 攻柠。
2.3:集成Sign In With Apple 流程
3、集成Sign In With Apple
3.1:集成SIWA后裸,一般用到的是下面幾個類:
Sign In with Apple Entitlement:一種權(quán)利瑰钮,可讓您的應(yīng)用程序使用“通過Apple登錄”。Key:?com.apple.developer.applesignin
class ?ASAuthorizationAppleIDProvider:一種用于基于用戶的Apple ID生成用于驗(yàn)證用戶身份的請求的機(jī)制微驶。
class ?ASAuthorizationController:一個控制器浪谴,用于管理提供者創(chuàng)建的授權(quán)請求开睡。
class ?ASAuthorizationAppleIDCredential:成功的Apple ID身份驗(yàn)證產(chǎn)生的憑證。
class?ASAuthorizationAppleIDButton:蘋果封裝的關(guān)于SIWA的按鈕類苟耻。
calss?ASPasswordCredential:密碼認(rèn)證管理類
3.2:集成SIWA開發(fā)
主要通過使用#import <AuthenticationServices/AuthenticationServices.h>框架來實(shí)現(xiàn)整個的蘋果ID登錄流程篇恒。而核心的類是ASAuthorizationAppleIDProvider,它是來創(chuàng)建和發(fā)起蘋果ID登錄請求的提供者。
3.2.1:SIWA按鈕
3.2.2按鈕的點(diǎn)擊實(shí)現(xiàn):
3.2.3:授權(quán)代理方法:
3.2.3.1:授權(quán)成功的方法:
- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithAuthorization:(ASAuthorization*)authorization? API_AVAILABLE(ios(13.0))
3.2.3.1:授權(quán)失敗的方法:
- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithError:(NSError*)error? API_AVAILABLE(ios(13.0))
3.2.4:授權(quán)頁面顯示
初次授權(quán)和已經(jīng)授權(quán)再次點(diǎn)擊時所展現(xiàn)出的界面是不一樣的凶杖,如下圖所示:左邊圖片是初次登陸頁面展示胁艰,右邊圖片是再次登陸頁面展示
彈出頁面后,按頁面所示進(jìn)一步操作即可智蝠。
在初次授權(quán)中蝗茁,姓名這一欄是可以自己修改的,點(diǎn)擊<姓名>這一欄寻咒,就可以根據(jù)需要修改
電子郵件:
可以選擇顯示或者隱藏哮翘,也可以選擇其他的郵箱,點(diǎn)擊共享我的電子郵件毛秘,可以彈出你自己所有的APPID郵箱賬號饭寺,你可以選擇其他的賬號。
如果你選擇<共享我的電子郵件>叫挟,那么在授權(quán)成功后艰匙,你會拿到真實(shí)的郵箱:
如果你選擇<隱藏郵件地址>,那么在授權(quán)成功后抹恳,你會拿到一個經(jīng)過處理后的混亂的郵箱:
相關(guān)示例代碼员凝,請點(diǎn)擊這里
4、Sign In With Apple按鈕樣式
樣式介紹:官方介紹
4.1:Sign In with Apple 提供了兩種按鈕樣式變種:【Sign In with Apple】 和 【Continue with Apple】奋献。根據(jù)需要健霹,選擇最適合自己服務(wù)的登錄場景所需要的樣式。
4.2:根據(jù)平臺的不同瓶蚂,該系統(tǒng)最多可以為使用Apple登錄按鈕提供三種外觀:白色(white)糖埋,帶有輪廓的白色(white with an outline)和黑色( black)。選擇最適合您在其上顯示按鈕的背景的外觀窃这。
4.2.1:白色:
白色樣式在iOS瞳别,macOS,tvOS和Web中可用杭攻。在提供足夠?qū)Ρ榷鹊纳钌虿噬尘吧鲜褂么藰邮健?/p>
4.2.2:白色帶輪廓
白色輪廓樣式可在iOS祟敛,macOS和Web中使用。在無法提供足夠?qū)Ρ榷鹊陌咨驕\色背景上使用此樣式兆解;不要在黑暗或飽和的背景上使用它馆铁。
4.2.3:黑色
黑色樣式適用于所有平臺和網(wǎng)絡(luò)。在可提供足夠?qū)Ρ榷鹊陌咨驕\色背景上使用此樣式痪宰;不要在黑色或深色背景上使用它叼架。
4.3:按鈕尺寸和位置
4.3.1:突出顯示“使用Apple登錄”按鈕。使“使用Apple登錄”按鈕與其他登錄按鈕的大小相同衣撬,并避免使人們滾動查看該按鈕乖订。
4.3.2:調(diào)整拐角半徑以匹配應(yīng)用程序中其他按鈕的外觀。默認(rèn)情況下具练,“使用Apple登錄”按鈕具有圓角乍构。在iOS,macOS和網(wǎng)絡(luò)中扛点,您可以更改轉(zhuǎn)角半徑以產(chǎn)生帶有方形角的按鈕或弧形形的按鈕哥遮。有關(guān)開發(fā)人員的指導(dǎo),請參閱cornerRadius(iOS和macOS)和“使用Apple Buttons顯示和配置登錄”(Web)陵究。
4.3.3:保持最小的按鈕大小和按鈕周圍的邊距眠饮。請注意,按鈕標(biāo)題的長度可能會因地區(qū)而異铜邮。使用以下值作為指導(dǎo):
5仪召、關(guān)于使用Sign In With Apple審核的問題
關(guān)于蘋果對Sign In With Apple適配審核的規(guī)則,官方文檔說明?第4.8條
Apps that exclusively use a third-party or social login service (such as Facebook Login, Google Sign-In, Sign in with Twitter, Sign In with LinkedIn, Login with Amazon, or WeChat Login) to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option. A user’s primary account is the account they establish with your app for the purposes of identifying themselves, signing in, and accessing your features and associated services.
僅使用第三方或社交登錄服務(wù)(例如Facebook登錄松蒜,Google登錄扔茅,Twitter登錄,LinkedIn登錄秸苗,Amazon登錄或微信登錄)的應(yīng)用來設(shè)置或驗(yàn)證用戶的主帳戶該應(yīng)用程序還必須提供“與Apple登錄”作為等效選項(xiàng)召娜。用戶的主要帳戶是他們在您的應(yīng)用中建立的帳戶,用于識別自己的身份惊楼,登錄并訪問您的功能和相關(guān)服務(wù)玖瘸。
如果是下面這類類型的應(yīng)用則不需要添加:
您的應(yīng)用專門使用公司自己的帳戶設(shè)置和登錄系統(tǒng)。
您的應(yīng)用是教育檀咙,企業(yè)或商業(yè)應(yīng)用店读,要求用戶使用現(xiàn)有的教育或企業(yè)帳戶登錄。
您的應(yīng)用程序使用政府或行業(yè)支持的公民身份識別系統(tǒng)或電子ID來對用戶進(jìn)行身份驗(yàn)證攀芯。
您的應(yīng)用是特定第三方服務(wù)的客戶端屯断,要求用戶直接登錄其郵件,社交媒體或其他第三方帳戶才能訪問其內(nèi)容
另外需要注意侣诺,關(guān)于何時接入Sign In With Apple殖演,蘋果在有關(guān)“通過 Apple 登錄”的指南更新有說明:
We’ve updated the App Store Review Guidelines to provide criteria for when apps are required to use Sign in with Apple. Starting today, new apps submitted to the App Store must follow these guidelines. Existing apps and app updates must follow them by April 2020. We’ve also provided new guidelines for using Sign in with Apple on the web and other platforms.
我們更新了《 App Store審查指南》,為何時需要應(yīng)用程序使用“使用Apple登錄”提供了標(biāo)準(zhǔn)年鸳。從今天開始趴久,提交到App Store的新應(yīng)用必須遵循這些準(zhǔn)則。現(xiàn)有應(yīng)用程序和應(yīng)用程序更新必須在2020年4月之前進(jìn)行搔确。我們還提供了有關(guān)在網(wǎng)絡(luò)和其他平臺上使用Apple登錄功能的新指南彼棍。
6灭忠、關(guān)于Sign In With Apple登錄后和服務(wù)器交互的問題,
Sign In With Apple 從登陸到服務(wù)器驗(yàn)證
Sign in with Apple(蘋果授權(quán)登陸)
7座硕、附錄:
蘋果最新更新:https://developer.apple.com/news/