iOS App接入Facebook登录实践

简介: 接入Facebook登录真的好方便,不需要像微信登录那样还要做开发者资质认证。参考下面这两篇文章就可以搞明白怎么操作。 1. [在iOS工程中集成facebook第三方登录](http://www.jianshu.com/p/043974c1b081) 2. [iOS集成facebook实现自动登录](http://www.jianshu.com/p/4186c54c13b1) 总结

接入Facebook登录真的好方便,不需要像微信登录那样还要做开发者资质认证。参考下面这两篇文章就可以搞明白怎么操作。

  1. 在iOS工程中集成facebook第三方登录
  2. iOS集成facebook实现自动登录

总结流程如下。

  1. 创建App,填写相关信息。
  2. Add Platform。如果是iOS App,需要设置Bundle ID。
  3. Make App public。

接下来看看Facebook登录的一些细节。如果安装了Facebook App的话,那么唤起Facebook App授权,否则,在App里面打开SFSafariViewController登录和授权。SFSafariViewController真好用啊,gmail也通过SFSafariViewController做登录。

Paste_Image.png

Paste_Image.png

用户授权之后,Facebook唤起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),这不是一个标准的JWT。在 https://jwt.io/ 里面可以decode出来,payload就是一个普通的JSON字符串。

Paste_Image.png

更多关于signed_request字段的介绍可以参看Facebook的文档:https://developers.facebook.com/docs/reference/login/signed-request

最后App里面使用的token如下所示。access token跟上面URL里面的是一样的。token里面也是没有refresh token的。fbsdk提供了FBSDKAccessTokenDidChangeNotification 通知用于告知用户access token发生了变化,用户并不需要关心access token的更新。作为一个登录SDK,确实也没有必要暴露refreshToken。

Paste_Image.png

Facebook登录简化了获取token的流程,用户授权完成之后,返回source App,直接把URL交给FBSDKApplicationDelegate把后续流程全部完成了。微信登录则需要开发者自己走完OAuth 2.0所有的流程,并且负责token的刷新。

参考资料。

  1. iOS微信第三方登录实现
  2. OAuth2.0实战1(分析简书的微信登陆及实现)
  3. 移动应用微信登录开发指南
  4. 【译】JSON Web Tokens (JWT) 与 Sessions
相关文章
|
2月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
95 3
|
2月前
|
iOS开发 开发者
一键制作 iOS 上架 App Store 描述文件教程
一键制作 iOS 上架 App Store 描述文件教程
|
3月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
3月前
|
安全 数据安全/隐私保护 iOS开发
iOS App 上架流程图文教学
在上架App 之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传App开始讲起。首先,要将自己辛苦写好的App 送审的话,则要依序做完下列几件事情即可。
|
2月前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
110 0
|
2月前
|
开发者 iOS开发
iOS App上架新规解析:如何进行App备案
iOS App上架新规解析:如何进行App备案
158 0
|
2月前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
3月前
|
iOS开发 开发者
iOS App 上架指南及关键建议
上架App Store是将iOS应用提交申请并上线的过程,旨在让应用在App Store上展示,吸引用户并获取流量。本文将介绍iOS上架的整体流程,并提供一些建议和注意事项。
|
3月前
|
iOS开发 开发者 UED
2023年iOS App Store上架流程详解(上)
在2023年,随着苹果发布机制的微调,有些关于iOS App上架流程的资料已经过时。本文将根据最新的要求和经验,详细介绍iOS App上架的流程。
|
3月前
|
存储 数据安全/隐私保护 开发者
图文详解丨iOS App上架全流程及审核避坑指南
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。