源码参考:链接 密码:37gm
源码可实现设置手势密码、登陆验证手势密码、修改手势密码
另外添加了钥匙串本地保存手势密码,这里主要记录存储的逻辑。
需求如下:1、用钥匙串保存的好处是即便用户卸载了APP,密码仍然有效,下次安装好了即可读取使用。
2、默认存在手势密码则不输入账号密码,手势密码的作用是自动登录,这样才有保存密码的必要。这也就要求本地也要保存了用户真实的登录用户名和密码。
代码处理逻辑如下:
0、通过getAutoLoginAccountInfo看本地是否有登录过是账户,如果有账户则通过 +(NSString*)getPasswordStringForUsername:(NSString*)username andServiceName:(NSString*)serviceName error:(NSError**)error 读取用户的手势密码,如果存在手势密码则跳转到手势登录,若没有则输入账号和密码登录
1、用户登陆成功之后,通过addAutoLoginAccountToKeyChainWithAccountIdentifier保存账户和密码,每次登录都会调用一次,也就是本地只会存有最后一次登录的账号的密码。这样才能根据账号判断用户是否有手势密码,因为手势密码是与登录账号关联的。
2、设置好手势密码后,通过+ (BOOL)storeUsername:(NSString*)username andPasswordString:(NSString*)password forServiceName:(NSString*)serviceName updateExisting:(BOOL)updateExisting error:(NSError**)error 保存手势密码
3、需要注意的是,当用户修改了登录密码或者重新找回了登录密码时要及时更新本地保存在钥匙串中的账户密码,否则再次用手势自动登录会密码错误。