当前位置:网站首页>Apple账号密码自动填充
Apple账号密码自动填充
2022-07-01 07:15:00 【朱莉^_^JuneLee】
一、解决问题
为了app登录流程用户体验问题,对于用户登录的账号密码记录并自动填充,为用户提供快速、便捷的登录方式,让用户选择账号即可填充账号密码
二、新技术概述
这个功能已经推出比较久了,在WWDC17上,苹果发布的iOS11,其中带来了App密码自动填充的这一新的API。这一功能的实现能够让用户更方便的管理密码,更容易在我们的应用上登录。
密码自动填充简化了iOS应用和网页的登录和帐户创建任务。只需轻点几下,您的用户就可以创建并保存新密码或登录现有帐户。用户甚至不需要知道他们的密码;系统处理一切。这种便利性增加了用户完成应用程序登录或注册流程并更快地开始使用您的应用程序的可能性。此外,通过鼓励用户选择唯一的强密码,您可以提高应用的安全性。 默认情况下,密码自动填充会将用户的登录凭据保存在其当前的iOS设备上。 iOS可以使用iCloud Keychain在用户的设备上安全地同步这些凭据。密码自动填充仅为应用程序的关联域推荐凭据,并且用户必须在访问这些凭据之前使用Face ID或Touch ID进行身份验证。 密码自动填充还提供实施凭证提供程序扩展的第三方密码管理器的凭据。
WWDC17相关视频地址:Introducing Password AutoFill for Apps
三、效益
使用该技术,会记住用户的账号和密码,能让用户创建并保存新密码或登录现有账户,解决用户因记不住密码或者输错密码导致的登录问题,大大提高用户使用app的便捷性和流畅性。
四、风险评估
该技术由苹果官方推出,并在开发者大会上进行讲解说明,技术方面足够成熟,并且市面上很多APP或者网站上都实现了这个功能,目前未爆出有风险。
五、详细说明
1、项目配置
在工程中开启Associated Domains,或者直接在https://developer.apple.com/登录您的开发者账号,然后进入Certificates, Identifiers & Profiles,选择你的Identifiers,点击编辑,勾选Associated Domains
点击添加按钮会直接增加一个webcredentials:example.com,官方给的格式是: <service>:<fully qualified domain>:<port number> 。而图片中的webcredentials是网页和应用共享证书的服务,具体如下:
applinks: 通用链接服务
webcredentials:网页和应用共享证书凭据服务
activitycontinuation:HandOff服务
网站如果需要适应example.com的子域名的话,则为 .example.com ,并且保证每条增加的都应有**webcredentials: **头部。
2、服务器配置
创建一个名为apple-app-site-association的json文件(不要添加json后缀),然后里面填入的信息如下:
- TeamId为,该项目开发者账号的TeamId,可在开发者账号上查看
- BundleId为,该项目的Bundle identifier,在项目上可查看
{"webcredentials":{
"apps": ["$TeamId.$Bundle id" ]}
}
然后将此json文件放到服务器域名根目录,或者.well-known目录下面,只要能够使用访问即可
然后服务器人员给到我们访问的域名,我们将其域名,添加到上面的Associated Domains中,格式为
webcredentials:$域名,比如webcredentials:api.yolanda.hkapp设置截图
3、代码设置
将登陆注册的账号和密码的UITextfield的textContentType设置为username或者emailAddress、password
然后运行项目,查看效果
1、运行app,输入账号和密码,点击登录,登录后,会弹出是否保存保存密码
2、点击保存后,退出登录,在登录页面,点击账号和密码输入框,键盘会弹出之前保存的账号密码,点击后,进行面容Id或者指纹识别后,自动填充账号密码
3、修改密码后,更新原有账号的密码提醒
手动设置账号密码保存代码
NSString *server = @"oversea-sit.yolanda.hk";
NormalUser *loginUser = [[UserTool sharedUserTool] getLoginUser];
SecAddSharedWebCredential( (**__bridge** CFStringRef)server, (**__bridge** CFStringRef)loginUser.email, (**__bridge** CFStringRef)_newPwdTextField.textField.text, ^(CFErrorRef **_Nullable** error) {
});
然后系统会弹出弹框确认是否更新原有账号保存的密码,点击更新密码,退出登录后,填充的密码就是修改后的密码
边栏推荐
- 解决无法读取META-INF.services里面定义的类
- rclone中文文档:常用命令大全
- 赌上了绩效,赢了公司CTO,我要搭DevOps平台!
- 在长城证券上做基金定投安全吗?
- STM32F1与STM32CubeIDE编程实例-NEC协议红外接收与解码
- 华泰证券开户是安全可靠的么?怎么开华泰证券账户
- How to draw a product architecture diagram?
- 解决kaniko push镜像到harbor时报错(代理导致):unexpected status code 503 Service Unavailable
- Alibaba OSS postman invalid according to policy: policy condition failed: ["starts with", "key", "test/"]
- JSP - paging
猜你喜欢

Product learning (I) - structure diagram

C语言实现【三子棋游戏】(步骤分析和实现源码)

【编程强训2】排序子序列+倒置字符串

DC-4 target

The game is real! China software cup releases a new industrial innovation competition, and schools and enterprises can participate in it jointly

We found a huge hole in MySQL: do not judge the number of rows affected by update!!!

Mysql与Redis一致性解决方案

【LINGO】求七个城市最小连线图,使天然气管道价格最低

如何画产品架构图?
![[image processing] image histogram equalization system with GUI interface](/img/3b/52c241c48c91dd58300af58478129e.png)
[image processing] image histogram equalization system with GUI interface
随机推荐
【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)
Jena基于OWL的默认推理查询
Chinese explanation of common rclone subcommands
如何制作专属的VS Code主题
在券商账户上买基金安全吗
Warm congratulations on the successful listing of five elements hehe liquor
rclone 访问web界面
LeetCode+ 71 - 75
Rclone access web interface
[matlab] solve nonlinear programming
JSP - paging
【编程强训2】排序子序列+倒置字符串
热烈祝贺五行和合酒成功挂牌
(I) apple has open source, but so what?
发现了一个 MySQL 的巨坑:update 更新别再用影响行数做判断了!!!
rclone配置minio及基本操作
go-etcd
Image style migration cyclegan principle
Microsoft announces open source (Godel) language model chat robot
[classification model] Q-type cluster analysis