iOS-账号密码自动填充与添加

前言

这个功能已经推出很久了,也在很多APP上都实现了这个功能,今天发现这个功能很友好以及手上的APP还未实现这个功能, 索性温习并记录一下。

密码自动填充简化了iOS应用和网页的登录和帐户创建任务。只需轻点几下,您的用户就可以创建并保存新密码或登录现有帐户。用户甚至不需要知道他们的密码;系统处理一切。这种便利性增加了用户完成应用程序登录或注册流程并更快地开始使用您的应用程序的可能性。此外,通过鼓励用户选择唯一的强密码,您可以提高应用的安全性。 默认情况下,密码自动填充会将用户的登录凭据保存在其当前的iOS设备上。 iOS可以使用iCloud Keychain在用户的设备上安全地同步这些凭据。密码自动填充仅为应用程序的关联域推荐凭据,并且用户必须在访问这些凭据之前使用Face IDTouch ID进行身份验证。有关隐私和安全性的更多信息,请参阅隐私方法iOS安全指南。 密码自动填充还提供实施凭证提供程序扩展的第三方密码管理器的凭据。有关凭据提供程序扩展的更多信息,请参阅AuthenticationServices框架。

密码自动填充使用启发式方法确定用户何时登录或创建新密码,并自动提供密码QuickType栏。这些启发式方法在大多数应用程序中为用户提供了一些密码自动填充支持,即使这些应用程序尚未更新以支持自动填充功能。但是,要提供最佳用户体验并确保您的应用完全支持密码自动填充,需要在应用中关联域名并在输入框设置正确的类型。触发自动填充的条件是需要用户点击了输入视图以及点击了键盘中的自动填充按钮。如果用户安装了APP,系统会将应用与应用关联域名列表并从Associated Domains Entitlement获取每个域,将尝试下载该域的Apple App Site Association文件,如果上述步骤都顺利的话,系统会将应用程序与该域关联,并为该域的凭据启动密码自动填充。使用账号密码自动填充需要系统在iOS11.0及更高的系统,伴随着iOS10.0及以上系统已经占据了90%+比例,所以我们有必要提供更好的体验,帮助用户在短时间内快速登录。

操作流程:

①在工程中开启Associated Domains,或者是在苹果后台的项目配置文件中开启,本文demo为自动签名。开启后运行项目会发现点击输入框后键盘上方会有一个钥匙图案,可以点击选择选择指定的账号和密码来进行。填充输入框。

点击添加按钮会直接增加一个 webcredentials:example.com,官方给的格式是:<service>:<fully qualified domain>:<port number>。而图片中的webcredentials是网页和应用共享证书的服务,具体如下:

applinks: 通用链接服务
webcredentials:网页和应用共享证书凭据服务
activitycontinuation:HandOff服务

网站如果需要适应example.com的子域名的话,则为.example.com,并且保证每条增加的都应有**webcredentials: **头部。

②创建文件:apple-app-site-association 其中24GJHXXXteamID,不是证书上的那个ID。另外后面的为app的BundleID,所以格式是:<teamID>.<BundleID>,如果有多个,可以在数组中添加。并确保该文件json格式正确无误。

{
    "webcredentials": {
        "apps": ["24XGJHXXX.cn.mypup.PasswordFillDemo"]
    }
}

③确保文件上传至①所填的域名目录下或.well-know文件夹下,官方推荐使用文件夹,并且确保可以以https方式访问到该文件:https://example.com/.wellhnow/apple-app-site-association

④在Xib或代码中把输入框的textContentType填为.username.password

.png

⑤我们在手机的【设置】-【密码与账户】- 网站与应用密码】- 新建一个①指定网站的账号和密码,然后运行APP,点击输入框会发现和①的时候不同,直接显示了我们设置的账号,点击即可填充账号和密码,并且点击钥匙图标的时候也是展示该网站的账号列表并有选择其他账号的选项。这跟QQ等支持了自动填充的APP的体验是一样的了。


添加账号密码

话说要是让用户来添加账号密码,在进行填充也不是很方便,正常的逻辑应该是我们注册登录成功的时候保存账号密码,后续登录可以直接使用自动填充来进行登录才是最方便的,这个苹果也想到了,可以添加账号到共享凭据中。下面就是把输入的账号添加到钥匙串并由iCloud进行同步管理,可以进行跨设备使用此账户来进行填充。

let server = "mypup.cn"
let user = User.init(user: userTextField.text ?? "", password: passwordTextField.text ?? "")
SecAddSharedWebCredential(server as CFString, user.user as CFString, user.password as   
CFString) { (error) in
    guard error == nil else {
         print("发生错误", error!.localizedDescription)
         return
    }
    print("存储新账号密码成功")
}

上面的代码会弹出提示让用户是否允许保存,用户同意后后续都能使用此账号在该设备和其他登录了同一ID设备以及浏览器均可进行填充。

总结

利用苹果iOS11 推出密码自动填充的功能来简便用户的登录操作,其中textContentType还有很多特性,通过iCloud、HandOff可以实现跨设备的极佳的体验。另外本文没有提及生成强密码部分,因为在国内还是很少人用这个功能吧,至少本人是这样,怕忘记密码或者在其他端登录不晓得密码的尴尬,苹果提供的生成强密码可以根据指定的规则来生成,还是很方便的对于外国人来说。

转载于作者:幸福的小木子
链接:https://juejin.im/post/5d2450e651882555300feb4d

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容