iOS開發(fā):Sign In With Apple(使用Apple登錄)

公司要開發(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正式版。

上面三個條件缺一不可冲秽。

開發(fā)文檔規(guī)定的系統(tǒng)版本號

2.2:工程配置

2.2.1按照下圖所示

工程配置順序

2.2.2:點(diǎn)擊 “+”號舍咖,在彈出的框里搜索 Sign In With Apple,然后雙擊菜單中的 Sign In With Appple锉桑,添加到工程中排霉。

搜索Sign In With Apple

2.2.3:添加成功Sign In With Apple,如下圖所示

添加成功所示

2.2.4:如果項(xiàng)目中沒有?AuthenticationServices.framework 民轴,請務(wù)必添加?AuthenticationServices.framework 攻柠。

添加系統(tǒng)支持的framework

2.3:集成Sign In With Apple 流程

集成蘋果ID登錄流程


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按鈕

SIWA按鈕實(shí)現(xiàn)的代碼

3.2.2按鈕的點(diǎn)擊實(shí)現(xiàn):

點(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))

授權(quán)成功

3.2.3.1:授權(quán)失敗的方法:

- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithError:(NSError*)error? API_AVAILABLE(ios(13.0))

授權(quán)失敗

3.2.4:授權(quán)頁面顯示

初次授權(quán)和已經(jīng)授權(quán)再次點(diǎn)擊時所展現(xiàn)出的界面是不一樣的凶杖,如下圖所示:左邊圖片是初次登陸頁面展示胁艰,右邊圖片是再次登陸頁面展示

授權(quán)登錄頁面展示

彈出頁面后,按頁面所示進(jìn)一步操作即可智蝠。

在初次授權(quán)中蝗茁,姓名這一欄是可以自己修改的,點(diǎn)擊<姓名>這一欄寻咒,就可以根據(jù)需要修改

電子郵件:

可以選擇顯示或者隱藏哮翘,也可以選擇其他的郵箱,點(diǎn)擊共享我的電子郵件毛秘,可以彈出你自己所有的APPID郵箱賬號饭寺,你可以選擇其他的賬號。

如果你選擇<共享我的電子郵件>叫挟,那么在授權(quán)成功后艰匙,你會拿到真實(shí)的郵箱:

真實(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登錄功能的新指南彼棍。

查看《App Store 審核指南》 (英文)


6灭忠、關(guān)于Sign In With Apple登錄后和服務(wù)器交互的問題,

Sign In With Apple 從登陸到服務(wù)器驗(yàn)證

Sign in with Apple(蘋果授權(quán)登陸)

快速配置 Sign In with Apple

蘋果官方文檔之生成并驗(yàn)證token


7座硕、附錄:

蘋果最新更新:https://developer.apple.com/news/

APP添加apple登錄https://developer.apple.com/documentation/authenticationservices/adding_the_sign_in_with_apple_flow_to_your_app


注意:以上屬于原創(chuàng)弛作,若有雷同純屬巧合;如有錯誤华匾,請多多指正映琳,轉(zhuǎn)載請標(biāo)明來源和作者。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜘拉,一起剝皮案震驚了整個濱河市萨西,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旭旭,老刑警劉巖谎脯,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異持寄,居然都是意外死亡穿肄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門际看,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咸产,“玉大人,你說我怎么就攤上這事仲闽∧砸纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵赖欣,是天一觀的道長屑彻。 經(jīng)常有香客問我,道長顶吮,這世上最難降的妖魔是什么社牲? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮悴了,結(jié)果婚禮上搏恤,老公的妹妹穿的比我還像新娘。我一直安慰自己湃交,他們只是感情好熟空,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搞莺,像睡著了一般息罗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上才沧,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天迈喉,我揣著相機(jī)與錄音绍刮,去河邊找鬼。 笑死挨摸,一個胖子當(dāng)著我的面吹牛孩革,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播油坝,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嫉戚,長吁一口氣:“原來是場噩夢啊……” “哼刨裆!你這毒婦竟也來了澈圈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帆啃,失蹤者是張志新(化名)和其女友劉穎瞬女,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體努潘,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诽偷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疯坤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片报慕。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖压怠,靈堂內(nèi)的尸體忽然破棺而出眠冈,到底是詐尸還是另有隱情,我是刑警寧澤菌瘫,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布蜗顽,位于F島的核電站,受9級特大地震影響雨让,放射性物質(zhì)發(fā)生泄漏雇盖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一栖忠、第九天 我趴在偏房一處隱蔽的房頂上張望崔挖。 院中可真熱鬧,春花似錦庵寞、人聲如沸虚汛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卷哩。三九已至狂男,卻和暖如春琉历,著一層夾襖步出監(jiān)牢的瞬間仔雷,已是汗流浹背院刁。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尊浓,地道東北人逞频。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像栋齿,于是被迫代替她去往敵國和親苗胀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容