在一键登录出现之前,市场上最常见的APP 注册登录方式主要有账号密码、短信验证及第三方登录。这几种方式看似常见且便捷,实则存在许多安全隐患,用户体验也相对较差。首先,短信验证码到达率低、用户操作繁琐且等待时间较长,如果遇到bug,APP就会面临被卸载的惨境。再者,短信木马、伪基站等问题都使得验证码变得越发不安全,极大降低用户的使用体验。

而“一键登录”可以让用户使用本机号码一键登录/注册 APP,手机号码即用户账号,无需使用密码和短信验证,运营商网关直接校验手机本机号,轻松解决上述问题。那么,这么好用的功能怎么才能实现呢?今天就给大家介绍极光开发者服务产品“极光认证”。

极光认证整合了三大运营商的一键登录功能,接入极光认证一个 SDK 就可以实现三网用户一键登录APP,并已覆盖99.9%以上的国内用户。iOS端的SDK集成操作步骤如下:

1.注册极光开发者账号并做开发者认证,如果之前有用过极光推送这步可以直接省去。如果之前没用极光的其他 SDK 就要先注册账号,传送门:https://www.jiguang.cn/identify

2.选择要开通极光认证的应用程序,在应用设置中点击左侧的[极光认证]按钮。在应用介绍中填写[应用分类] 、[应用简介]。iOS应用需要填写[Bundle ID],填写完成后点击[提交审核];

3.若需要使用一键登录功能,待步骤2完成后,请在[一键登录设置]中选择要开通一键登录的平台,并填写RSA加密公钥,点击[提交审核]按钮;

4.提交之后需要等待审核,审核还是挺快的,大概半个小时就通过了。首次申请,极光还会赠送 10000 多条的测试条数,可谓良心。审核通过后下载SDK参考以下步骤集成JVerification SDK。传送门:https://docs.jiguang.cn//jverification/resources/


手动集成步骤

1.请在自己的工程中导入下载下来SDK包当中的libs文件夹

2.为工程添加相应的Frameworks,需要为项目添加的Frameworks如下:

  • AdSupport.framework(获取 IDFA 需要;如果不使用 IDFA,请不要添加)
  • CoreLocation.framework
  • CFNetwork.framework
  • CoreFoundation.framework
  • libresolv.tbd
  • libz.tbd
  • libc++.1.tbd
  • CoreTelephony.framework
  • SystemConfiguration.framework
  • Security.framework
  • CoreGraphics.framework
  • libsqlite3.tbd
  • MobileCoreServices.framework
  • 位置:General 》linked Frameworks and libraries

3.配置-ObjC

设置工程 TARGETS -> Build Settings -> Other Links Flags, 设置 -ObjC

4.配置支持Http传输

右键打开工程plist文件,加入以下代码

 <key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

5.请将演示Demo中JVerificationResource.bundle拖到自己的工程目录下。

参考步骤1

6.在项目中添加一键登录功能

  • 在General》identity 下配置bundleID(参考下图)

  • 请将以下代码添加到引用JVERIFICATIONService.h头文件的的相关类中(参考下图)

    //引入JVERIFICATIONService.h头文件
#import "JVERIFICATIONService.h"
// 如果需要使用 idfa 功能所需要引入的头文件(可选)
#import <AdSupport/AdSupport.h>
  • 接入的JVerification SDK的应用,必须先初始化JVERIFICATIONService,否则将会无法正常使用,请将以下代码添加到合适的位置(参考下图)

    //如需使用 IDFA 功能请添加此代码并在初始化配置类中设置 advertisingId
    NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    JVAuthConfig *config = [[JVAuthConfig alloc] init];
    config.appKey = @"your appkey";
    config.advertisingId = idfaStr;
    [JVERIFICATIONService setupWithConfig:config];

2019-08-09 11:10:32.727188+0800 login[1240:285949]  | JIGUANG | I - [JIGUANGService]
--------------------------- JVerification Log ----------------------------
--------------------JVerification SDK Version:2.4.0--build:102------------
--------------------JCore Lib Version:2.1.1--build:78-----------------
-----------------AppKey:79d4c5ad142bba180ac12344-----------------------
-----------------------------------------------------------------------
2019-08-09 11:10:32.823700+0800 login[1240:285952] | JIGUANG | I - [JIGUANGClientController] Action - setup
2019-08-09 11:10:32.847702+0800 login[1240:285949] | JIGUANG | I - [JIGUANGConnectManager] Action - closeConection
2019-08-09 11:10:32.965061+0800 login[1240:285949] | JIGUANG | I - [JIGUANGRegister]
----- register info -----
Appkey: 79d4c5ad142bba180ac18d2b
token:
advertisingIdentifier: E409D462-ED53-4901-8CB1-73807F60AA11
2019-08-09 11:10:34.058410+0800 login[1240:285949] | JIGUANG | I - [JIGUANGTcpEventController]
----- register result -----
uid: 29023815771
registrationID:13165ffa4e7673d8bd8
2019-08-09 11:10:34.066755+0800 login[1240:285928] 初始化结果 result:{
code = 8000;
content = "init success";
}
2019-08-09 11:10:34.107601+0800 login[1240:285949] | JIGUANG | I - [JIGUANGTcpEventController]
----- login result -----
uid:29023815771
registrationID:13165ffa4e7673d8bd8
2019-08-09 11:10:34.132452+0800 login[1240:285949] | JIGUANG | I - [JIGUANGIDFAReport] upload advertisingIdentifier E409D462-ED53-4901-8CB1-73807F60AA11
2019-08-09 11:10:35.080778+0800 login[1240:285950] | JIGUANG | I - [JIGUANGTcpEventController] upload advertisingIdentifier success
2019-08-09 11:10:36.113310+0800 login[1240:285950] | JIGUANG | I - [JIGUANGConnectManager] Action - disConnect
2019-08-09 11:10:36.113575+0800 login[1240:285950] | JIGUANG | I - [JIGUANGConnectManager] Action - closeConection
  • 集成成功后可点击以上设置好的按钮对应的接口(获取tonken、请求授权、预取号、登录)来体验一键登录
  • 如果您不喜欢默认的登录页面,极光认证SDK中提供了自定义页面的接口,可以按照自己设计稿来修改UI 文档参考:

    https://docs.jiguang.cn/jverification/client/android_api/#sdkui

以上就是iOS一键登录SDK的集成步骤,实操下来真的很方便!想要提升用户体验和产品安全度的开发者不妨可以参考使用。

一键登录怎么在iOS端实现?这篇文章教会你!的更多相关文章

  1. 登录界面 Android简单http get请求(含server端)五 iOS端(特别篇)

    </pre><pre name="code" class="objc">NSDictionary *dict=@{@"user ...

  2. 一键登录已成大势所趋,Android端操作指南来啦!

    根据极光(Aurora Mobile)发布的<2019年Q2移动互联网行业数据研究报告>,2019年第二季度,移动网民人均安装APP总量已达56款.面对如此繁多的APP,想在用户的手机中占 ...

  3. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  4. Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)

    前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架.本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在<Swift3.0服务端开发(一)>这篇 ...

  5. JavaEE开发之记事本完整案例(SpringBoot + iOS端)

    上篇博客我们聊了<JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎>,并且在之前我们也聊了<Swift3.0服务端开发(五) 记事本的开发(iO ...

  6. 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)

    原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...

  7. Web项目也能一键打包Android、IOS

    随着移动互联网的不断发展,智能手机配置的不断提高,越来越多的年轻人基本都在使用手机,如微信.支付宝等等.已基本成为一种习惯,坐电梯也好.吃饭也好.开车也好,基本都捧着一个手机在那按来按去,开车就不建议 ...

  8. 批处理文件——多个QQ一键登录

    偶然看到有的同学登录PC的QQ,发现他有很多QQ,每登录一个要切换一个,虽然记住了密码,但还是不方便,于是想通过批处理来实现“一键登录”的功能.以下内容为本文假想,如有雷同,实属巧合! 具体的实现步骤 ...

  9. 恩布企业 IM iOS端 1.1 公布, 开源手机 IM

    恩布企业IM的 iOS 苹果开源手机client EntboostChat 公布 1.1 开发版本号.开源企业IM.企业即时通讯软件: 主要更新内容: 录界面添加自己定义LOGO显示 持部门.群组.联 ...

随机推荐

  1. linux无密钥登陆

    1.在用户目录下执行命令 ssh-keygen -t rsa 一路回车: 2.在当前用户目录下,进入.ssh文件夹(.ssh文件夹为隐藏文件夹,直接进去即可). 在.ssh文件夹下执行命令: cat ...

  2. Windows10内置Linux子系统初体验

    http://www.jianshu.com/p/bc38ed12da1dhttp://www.jianshu.com/p/bc38ed12da1d WSL 前言 前段时间,机子上的win10又偷偷摸 ...

  3. 鸟哥私房菜基础篇:例行性工作排程 (crontab)习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0430cron.php 1-今天假设我有一个命令程序,名称为: ping.sh 这个档名!我想要让系统每 ...

  4. PJzhang:kali linux安装virtualbox虚拟机和chrome浏览器

    猫宁!!! 参考链接: https://www.cnblogs.com/zhishuai/p/8007410.html kali linux 安装virtualbox. 查询系统的版本 apt-cac ...

  5. Go语言中数组的内部实现和基础功能

    数组的内部实现和基础功能 因为数组是切片和映射的基础数据结构.理解了数组的工作原理,有助于理解切片和映射提供的优雅和强大的功能. 内部实现 在Go语言里,数组是一个长度固定的数据类型,用于存储一段具有 ...

  6. java_guide_9-30_并发相关

    3.1 CopyOnWriteArrayList 简介 public class CopyOnWriteArrayList<E> extends Object implements Lis ...

  7. [转帖]VIM常用快捷键

    VIM常用快捷键 https://www.cnblogs.com/markleaf/p/7808817.html 快捷键能够显著的提高工作效率 一.移动光标 h,j,k,l 上,下,左,右ctrl-e ...

  8. [转帖]nginx1.17.2版本源码安装

    nginx1.17.2版本源码安装 原创: 沧海书生 Ansible爱好者 昨天 公众号里面的内容 这里简单测试了下 在x86的虚拟机里面编译安装 nginx 仅make make install n ...

  9. ABP创建应用服务

    原文作者:圣杰 原文地址:ABP入门系列(4)——创建应用服务 在原文作者上进行改正,适配ABP新版本.内容相同 1. 解释下应用服务层 应用服务用于将领域(业务)逻辑暴露给展现层.展现层通过传入DT ...

  10. 洛谷 P2018 消息传递 题解

    题面 总体来说是一道从下往上的DP+贪心: 设f[i]表示将消息传给i,i的子树全部接收到所能消耗的最小时间: 那么对于i的所有亲儿子节点j,我们会贪心地先给f[j]大的人传递,然后次大..... 可 ...