iOS开发实用技术之第三方登陆

第三方登陆基本介绍

  • 为什么需要第三方登录

    • 每一个APP都希望用户尽可能多的参与进去,以增加用户之间的粘合度
  • 比较火的第三方登录平台

    • QQ - 从PC端转型到移动端
    • 新浪微博 - 相当于国外的推特,用户量很大
    • 微信 - 国内移动端最大用户群的应用

第三方登陆的原理

  • 使用用户的QQ/微博/微信账号生成的ID作为用户身份的标示
    • 选择第三方登录—-授权—-获取对应ID和AccessToken—获取用户相关信息
    • 保存用户信息的方式
      • 方式1:直接保存用户的ID到服务器,下次用户登录时,ID作为用户的身份
      • 方式2:获取ID后依然提示用户注册,但是下次登录时可以使用ID来验证身份
      • 具体步骤查看新浪微博第三方登录流程
        iOS开发实用技术之第三方登陆_第1张图片

友盟集成第三方登陆

参考地址:http://dev.umeng.com/social/ios/detail-share

  • 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 关闭
  • 设置 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库
iOS开发实用技术之第三方登陆_第2张图片

  • 新浪微博支持SSO授权

    • 添加URL scheme,在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,此值是 sso 登录时回调时所用。
      iOS开发实用技术之第三方登陆_第3张图片

    • 在你的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 集成登陆过程

你可能感兴趣的:(sdk,友盟,第三方登陆)