第三方登陆基本介绍
为什么需要第三方登录
- 每一个APP都希望用户尽可能多的参与进去,以增加用户之间的粘合度
比较火的第三方登录平台
- QQ - 从PC端转型到移动端
- 新浪微博 - 相当于国外的推特,用户量很大
- 微信 - 国内移动端最大用户群的应用
第三方登陆的原理
- 使用用户的QQ/微博/微信账号生成的ID作为用户身份的标示
- 选择第三方登录—-授权—-获取对应ID和AccessToken—获取用户相关信息
- 保存用户信息的方式
- 方式1:直接保存用户的ID到服务器,下次用户登录时,ID作为用户的身份
- 方式2:获取ID后依然提示用户注册,但是下次登录时可以使用ID来验证身份
- 具体步骤查看新浪微博第三方登录流程
友盟集成第三方登陆
ios9适配
- 1.下载 SDK 文件,拖到项目里
- 2.在 info.plist的 NSAppTransportSecurity 下新增 NSAllowsAribitraryLoads 并设置为 YES,指定所有的 HTTP 连接都可以正常请求
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
- 3.应用瘦身(App Thining)
- BUild Setting 中将 Enable bitcode 关闭
- BUild Setting 中将 Enable bitcode 关闭
设置 App 的 key
// 设置友盟的APPKEY
[UMSocialData setAppKey:@"5616236ae0f55a3cb20031ef"];
- 集成新浪微博第三方登陆
- (IBAction)sinaLogin {
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
// 获取微博用户名、uid、token等
if (response.responseCode == UMSResponseCodeSuccess) {
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];
NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
}});
}
注意:运行报错,注意导入SystemConfiguration.framework库
新浪微博支持SSO授权
添加URL scheme,在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,此值是 sso 登录时回调时所用。
在你的
AppDelegate
文件里面#import "WeiboSDK.h"
并实现下面的方法:- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [WeiboSDK handleOpenURL:url delegate:self]; }
QQ 及Qzone登陆
在 AppDelegate 应用入口方法添加下面的方法
#import "UMSocialQQHandler.h" // 集成QQ第三方登录或者分享,注意:appKey是腾讯开发平台自己应用的APPKEY [UMSocialQQHandler setQQWithAppId:@"1104898900" appKey:@"PiiKO9JyFFXRjcxr" url:@"http://www.baidu.com"];
首先在腾讯开放平台注册应用,地址:http://open.qq.com,点击“移动应用”
- 添加相关文件(有报错的话记得导入相关库)
- 配置 URL schemes,地址:http://dev.umeng.com/social/ios/detail-share#4
- 添加系统回调
微信及朋友圈分享
- 微信开放平台,类似QQ 集成登陆过程