当前位置:网站首页>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) {
});
然后系统会弹出弹框确认是否更新原有账号保存的密码,点击更新密码,退出登录后,填充的密码就是修改后的密码
边栏推荐
- MySQL table partition creation method
- 解决kaniko push镜像到harbor时报错(代理导致):unexpected status code 503 Service Unavailable
- LeetCode+ 71 - 75
- kdtree(kd树)笔记
- Image style migration cyclegan principle
- Rclone configuring Minio and basic operations
- 手机开户选哪个证券公司比较好,哪个更安全
- Félicitations pour l'inscription réussie de wuxinghe
- Problem solving: officeexception: failed to start and connect (I)
- Summary of the concept and advantages of 5g massive MIMO
猜你喜欢

ctfshow-web351(SSRF)

运维管理有什么实用的技巧吗

LeetCode+ 71 - 75

盘点华为云GaussDB(for Redis)六大秒级能力

ctfshow-web352,353(SSRF)

Warm congratulations on the successful listing of five elements hehe liquor
![[Shenzhen IO] precise Food Scale (some understanding of assembly language)](/img/8c/1e64401e812538d8606df557054355.png)
[Shenzhen IO] precise Food Scale (some understanding of assembly language)

Mysql与Redis一致性解决方案

MySQL and redis consistency solution

关于图灵测试和中文屋Chinese room的理解
随机推荐
Rclone configuring Minio and basic operations
比赛即实战!中国软件杯发布全新产业创新赛项,校企可联合参赛
atguigu----脚手架--02-使用脚手架(2)
Open source! Wenxin large model Ernie tiny lightweight technology, accurate and fast, full effect
How to permanently configure local opencv4.5.5 for vs2019
【LINGO】求无向图的最短路问题
Is it reliable to open an account on the compass with your mobile phone? Is there any potential safety hazard
[image processing] image histogram equalization system with GUI interface
Insufficient free space after clearing expired cache entries - consider increasing the maximum cache space
iNFTnews | 从《雪崩》到百度“希壤”,元宇宙30年的16件大事
热烈祝贺五行和合酒成功挂牌
【推荐技术】基于协同过滤的网络信息推荐技术matlab仿真
ctfshow-web355,356(SSRF)
JSP - 分页
kdtree(kd树)笔记
1286_FreeRTOS的任务优先级设置实现分析
如何制作专属的VS Code主题
[target detection] yolov5, the shoulder of target detection (detailed principle + Training Guide)
【FPGA帧差】基于VmodCAM摄像头的帧差法目标跟踪FPGA实现
DC-4靶机