一登人脸登陆(手把手教)
一共7步
<1>.下载一登SDK
<2>.填写信息
<3>.导入SDK
<4>.配置SDK
<5>.初始化SDK
<6>.调用登陆接口
<7>.完成
1.下载一登SDK
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。
设置为NO5. 初始化 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
接入成功。