iOS App接入Facebook登錄實(shí)踐

接入Facebook登錄真的好方便窖梁,不需要像微信登錄那樣還要做開發(fā)者資質(zhì)認(rèn)證。參考下面這兩篇文章就可以搞明白怎么操作挡逼。

  1. 在iOS工程中集成facebook第三方登錄,給出了一個非常好的demo错邦。
  2. iOS集成facebook實(shí)現(xiàn)自動登錄

總結(jié)流程如下。

  1. 創(chuàng)建App型宙,填寫相關(guān)信息撬呢。
  2. Add Platform。如果是iOS App妆兑,需要設(shè)置Bundle ID魂拦。
  3. Make App public。

接下來看看Facebook登錄的一些細(xì)節(jié)搁嗓。如果安裝了Facebook App的話芯勘,那么喚起Facebook App授權(quán),否則腺逛,在App里面打開SFSafariViewController登錄和授權(quán)荷愕。SFSafariViewController真好用啊,gmail也通過SFSafariViewController做登錄棍矛。

Paste_Image.png
Paste_Image.png

用戶授權(quán)之后安疗,F(xiàn)acebook喚起App的URL如下。這里可以看到access token够委。

fb1843069139350572://authorize/#state=%7B%22challenge%22%3A%22zrCrlaoLwdQkxNpNvA9ivqDs2UU%253D%22%2C%220_auth_logger_id%22%3A%22AB0468C8-74AF-43F9-B686-C7E8A63162E3%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22%7D
&granted_scopes=public_profile
&denied_scopes=
&signed_request=215mSYcJpCpfvZkF3QgwjdritOcUnxLENxPORXL_n-0.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUUFHLWhSdFFxSUFRclA3UTRTZmEwNTQ1bmF3RlZZNjFxdGVicWljMkpNRG9WcUdQTTB0ME1qU0xqR01wcFZTektEcUM3d0ZNV1NfX05RR1Fid0F6QXpESmtsSjh3ckNEVVhvX1BsbERCRzZ0OU9KR09BaVFkYnNVVTFWMzZQNklPODJsQll4RDNHNzE5LTBZNlUtLXY1Q2xGMzJRejdLaXo5eE9YX214cVZySmNvc2JXVC1ib0pxeENBd2oxdVVuUUk2WTFkcV9kZ1d0T252eHRHZmtBc2E0LUV4VTdjeVRCMmE4bVk1SUt3ZFg4S0Z0M2lkYmZNbEFWNzJIZHBmejNzbEU2LXZJZndaX1JPUDVEV3F1THV6SC1ObGt5cENhZEFIekZSdjdzTEt2MWdKUVB6R1JxUVJWb1hhT09jS0Fsd25KakpQcktfX0R2X3ZrV2Vrc2tlaUZUcHNLYVdmbjNjanhCYUVnMEhhdFRtbnB5eWFPMUpCcWRDR1IyNU4xc296cnFLbjNXM2dPRHFURlpUY3ZXaFciLCJpc3N1ZWRfYXQiOjE0OTM2NTEyMDYsInVzZXJfaWQiOiIxMzg2NDA4OTExNDA1Nzk2In0
&access_token=EAAaMQvlY9CwBAK3S9ik33QvokMlZCwCx3ZBsPVR240AJXOwU0BTv304mdr4Qf5W7UMoJv15tWyfM75zrM3GZC2KEDcYWoZB4pduoMyWxh0fK3cTrFzLeQVOZC9RKWR6QZC82LovWGaV6Ye9zeNx5TPRXtMCeX9qH1G6NYZBJyXcNqBdTJlh4RLV0IJFsX87V5SmmoU0Lm0ZC4pwZBzVtio1pKtrupJJGKwP4ZD
&expires_in=5183508
&e2e=%7B%22init%22%3A377554.65378193%7D

上面URL里面有一個很有意思的字段荐类,那就是signed_request,這個字符串的格式是:signature+.+base64url(JSON payload)茁帽,這不是一個標(biāo)準(zhǔn)的JWT玉罐。在 https://jwt.io/ 里面可以decode出來,payload就是一個普通的JSON字符串潘拨。

Paste_Image.png

更多關(guān)于signed_request字段的介紹可以參看Facebook的文檔:https://developers.facebook.com/docs/reference/login/signed-request吊输。

最后App里面使用的token如下所示。access token跟上面URL里面的是一樣的战秋。token里面也是沒有refresh token的璧亚。fbsdk提供了FBSDKAccessTokenDidChangeNotification通知用于告知用戶access token發(fā)生了變化,用戶并不需要關(guān)心access token的更新脂信。作為一個登錄SDK癣蟋,確實(shí)也沒有必要暴露refreshToken。

Paste_Image.png

Facebook登錄簡化了獲取token的流程狰闪,用戶授權(quán)完成之后疯搅,返回source App,直接把URL交給FBSDKApplicationDelegate把后續(xù)流程全部完成了埋泵。微信登錄則需要開發(fā)者自己走完OAuth 2.0所有的流程幔欧,并且負(fù)責(zé)token的刷新罪治。

參考資料。

  1. iOS微信第三方登錄實(shí)現(xiàn)
  2. OAuth2.0實(shí)戰(zhàn)1(分析簡書的微信登陸及實(shí)現(xiàn))
  3. 移動應(yīng)用微信登錄開發(fā)指南
  4. 【譯】JSON Web Tokens (JWT) 與 Sessions
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末礁蔗,一起剝皮案震驚了整個濱河市觉义,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浴井,老刑警劉巖晒骇,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異磺浙,居然都是意外死亡洪囤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門撕氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘤缩,“玉大人,你說我怎么就攤上這事伦泥“。” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵奄喂,是天一觀的道長铐殃。 經(jīng)常有香客問我,道長跨新,這世上最難降的妖魔是什么富腊? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮域帐,結(jié)果婚禮上赘被,老公的妹妹穿的比我還像新娘。我一直安慰自己肖揣,他們只是感情好民假,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著龙优,像睡著了一般羊异。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上彤断,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天野舶,我揣著相機(jī)與錄音,去河邊找鬼宰衙。 笑死平道,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的供炼。 我是一名探鬼主播一屋,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼窘疮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了冀墨?” 一聲冷哼從身側(cè)響起闸衫,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轧苫,沒想到半個月后楚堤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡含懊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衅胀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岔乔。...
    茶點(diǎn)故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖滚躯,靈堂內(nèi)的尸體忽然破棺而出雏门,到底是詐尸還是另有隱情,我是刑警寧澤掸掏,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布茁影,位于F島的核電站,受9級特大地震影響丧凤,放射性物質(zhì)發(fā)生泄漏募闲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一愿待、第九天 我趴在偏房一處隱蔽的房頂上張望浩螺。 院中可真熱鬧,春花似錦仍侥、人聲如沸要出。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽患蹂。三九已至,卻和暖如春砸紊,著一層夾襖步出監(jiān)牢的瞬間传于,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工批糟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留格了,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓徽鼎,卻偏偏與公主長得像盛末,于是被迫代替她去往敵國和親弹惦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評論 2 361

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