当前位置:网站首页>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) {
});
然后系统会弹出弹框确认是否更新原有账号保存的密码,点击更新密码,退出登录后,填充的密码就是修改后的密码
边栏推荐
- Chinese explanation of common rclone subcommands
- C# Newtonsoft. Use of job in JSON
- How to choose a product manager course when changing to a product manager?
- Product learning (III) - demand list
- [FPGA frame difference] FPGA implementation of frame difference target tracking based on vmodcam camera
- MySQL and redis consistency solution
- go-etcd
- ctfshow-web352,353(SSRF)
- Rclone configuring Minio and basic operations
- JSP - paging
猜你喜欢

为什么这么多人转行产品经理?产品经理发展前景如何?

Félicitations pour l'inscription réussie de wuxinghe

1286_ Implementation analysis of task priority setting in FreeRTOS

【剑指offer&牛客101】中那些高频笔试,面试题——链表篇

DC-4 target

【编程强训】删除公共字符(哈希映射)+组队竞赛(贪心)

How the esp32 deep sleep current is lower than 10uA

Solution to the problem that objects in unity2021 scene view cannot be directly selected

比赛即实战!中国软件杯发布全新产业创新赛项,校企可联合参赛

ctfshow-web351(SSRF)
随机推荐
C# 读写自定义的Config文件
Easynvs cloud management platform function reconfiguration: support adding users, modifying information, etc
[classification model] Q-type cluster analysis
JSP - 分页
rclone配置minio及基本操作
Automated test platform (13): interface automation framework and platform comparison, application scenario analysis and design ideas sharing
运维管理有什么实用的技巧吗
Cadence OrCAD Capture “网络名”相同,但是未连接或连接错误的解放方案之nodename的用法
为什么这么多人转行产品经理?产品经理发展前景如何?
广发证券开户是安全可靠的么?怎么开广发证券账户
【LINGO】求无向图的最短路问题
Mysql与Redis一致性解决方案
Using fuseki query when there are multiple models in TDB
【深圳IO】精确食品称(汇编语言的一些理解)
【编程强训2】排序子序列+倒置字符串
C# Newtonsoft.Json中JObject的使用
Programming examples of stm32f1 and stm32subeide infrared receiving and decoding of NEC protocol
[recommendation technology] matlab simulation of network information recommendation technology based on collaborative filtering
Inventory the six second level capabilities of Huawei cloud gaussdb (for redis)
盘点华为云GaussDB(for Redis)六大秒级能力