一登人脸登陆(手把手教)

一登开发者中心

一共7步

<1>.下载一登SDK
<2>.填写信息
<3>.导入SDK
<4>.配置SDK
<5>.初始化SDK
<6>.调用登陆接口
<7>.完成

1.下载一登SDK

(1).github下载
(2).我的云盘

2.填写下面的信息(这里的填写会影响下面的5.2内容 )

一登的信息填写

3.导入SDK

方法1:(整个SDK全拖进工程)
将 SDK 文件夹拖拽到 Xcode 工程目录结构中。在弹出的界面中勾选Copy items if needed, 并确保Add to targets勾选对应的 target。

方法2:
使用 Cocoapods 安装 SDK
Cocoapods 安装完成后,在你的项目根目录创建一个 Podfile 文件,添加如下内容:

 pod "SuperID"

执行pod install将会安装最新版本的一登 SDK

4. 配置 SDK

  • 1.添加-ObjC、-lstdc++编译选项。方法如下:Xcodeproj->Build Settings->Linking->Other Linker Flags,在 Other Linker Flags 选项中,双击该选项,点击弹出框左下⾓的 + 按钮,分别添加-ObjC 字符和 -lstdc++ 字符。

    添加-ObjC参数后链接器可以把静态库中所有的 Objective-C 类和分类都加载到最后的可执 行文件中。 添加 -lstdc++ 参数是由于一登 SDK 的静态库中需要 c++ 标准库支持。


    2974DCF1-36BA-4C5F-BE79-302A43ED6538.png

如果你使用 Cocoapods 安装 SDK,可跳过此步骤。

  • 2.如果使用的开发工具是 Xcode 7.0 以上版本,需要手动关闭 Bitcode。

方法为:Xcodeproj->Build Settings->Enable Bitcode 设置为 NO。

设置为NO

5. 初始化 SDK

  • 5.1.首先:在AppDelegate.m文件中,导入 SuperID SDK。

     #import "SuperID.h"
    
  • 5.2.接着,在 app delegate 方法中添加如下初始化代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
     [[SuperID sharedInstance]registerAppWithAppID:@"f70b68f7cfcd70de647ccb66" withAppSecret:@"7da6ee7f36fed97ea0c35a0c"];
    
      //开启SuperID SDK的调试模式,开发者在Release时,将该模式设置为NO. 
      [SuperID setDebugMode:YES];
      //设置一登 SDK 的语言模式,默认为自动模式。
      [SuperID setLanguageMode:SIDAutoMode];
    
       return YES;
    }
    

注:一登 SDK 支持以下四种语言模式,开发者可自行选择(默认为自动模式,根据系统语言切换)。

语言类型

6. 调用登录接口

  • 1.登录流程说明

    一登 SDK 授权登录适用于拥有 server 端的应用授权,目前移动应用上一登提供内嵌 UI 的登录方式。该模式整体流程如下:

    第三方发起一登授权登录请求,进入一登授权登录页面,用户进行刷脸登录操作过程(首次用户需确认其一登账户的账户信息)。
    一登 SDK 判断用户授权状态。已授权用户刷脸认证后进入步骤4。未授权用户刷脸认证后进入步骤3。
    用户允许授权第三方应用。
    通过继承一登 SDK 的委托回调,获取用户基本数据资源。

  • 2.登录集成说明

    在App的登陆控制器的.m中,同样导入 SuperID SDK。

    #import "SuperID.h"
    

在 App 的登陆控制器中,挂 SuperID SDK的代理<SuperIDDelegate>

在登陆控制器的ViewWillAppear方法中添加如下代码:

  -(void)viewWillAppear:(BOOL)animated{

     [SuperID sharedInstance].delegate = self;
  }
  • 3.你设置一个登陆按钮(下面按钮里面的方法)

     NSError *error = nil;
    
     id SIDLoginViewController = [[SuperID sharedInstance]obtainLoginViewControllerWithError:&error];
    
     if (SIDLoginViewController) {
    
         [self presentViewController:SIDLoginViewController animated:YES completion:nil];
    
     }else{
    
         NSLog(@"Error =%ld,%@",(long)[error code],[error localizedDescription]);
     }
    
  • 4.在当前的登陆控制器的.m文件中,添加一登 SDK 的代理方法,代码如下:

- (void)superID:(SuperID *)sender userDidFinishLoginWithUserInfo:(NSDictionary *)userInfo withOpenId:(NSString *)openId error:(NSError *)error{

if (!error) {

     //授权登录成功
    NSLog(@"userInfo:%@", userInfo);
    NSLog(@"openId = %@", openId);

}else{

   //授权登录失败
    NSLog(@"Login Fail Error =%ld,%@",(long)[error code],[error localizedDescription]);
  }
}

在 iPhone 真机上编译并运行当前工程。在网络环境正常情况下,点击界面的按钮,应用将会弹出一登SDK 的登录页面。登录操作成功后,工程将执行一登SDK 的代理方法,并获取当前用户的个人信息。

成功的返回,参数信息样例:

   userInfo:{
avatar = "xxxxx.jpg";
name = "\U5f90\U9a8f\U6770V1\Uff01";
persona = {
    character = reserved;
    gender = male;
    generation = 90s;
    location = {
        city = "\U6df1\U5733";
        country = CN;
        province = "\U5e7f\U4e1c";
    };
    tags = (
        eyeglasses
    );
};
  phone = 136xxxx9914;
 } 
 openId = xxxxxxxxxxxxxx
屏幕快照 2016-10-01 上午12.35.09.png

失败的返回,参数userInfo和uid为nil。error信息样例如下:

 Login Fail Error =-1000,Login Fail

7.在需要的地方退出登录(一般在我的里面,记得导入#import "SuperID.h")

当用户在三方应用发起退出账户或退出登录请求时,开发者需执行以下方法。该方法不会解除一登账户与三方应用的授权绑定状态,仅用于清除当前一登账户的凭证信息,开发者如需执行解除绑定操作,可查阅《授权查询与取消授权指南》。

 [[SuperID sharedInstance]appUserLogoutCurrentAccount];

8.完成刷脸

接入完毕后,能成功调取刷脸登陆界面(如图所示),并刷脸成功,则 SuperID SDK 接入成功。

完成刷脸

一登刷脸的demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 3,458评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,761评论 25 709
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,971评论 0 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 她叫夏末,母亲说因为她出生时刚好抓住了夏天的尾巴。印象中母亲总是喊她阿阔,从不叫她夏末,夏末也曾问过母亲这个问题,...
    Umaltmy阅读 529评论 0 0