iOS学习收录iOS界面特效篇登录

手势密码验证逻辑

2016-12-05  本文已影响375人  甘邦

1. 背景

公司最近的项目为了保护App数据资源的安全,而又为了节省用户操作的步骤,而采用了手势密码优化验证过程。

2. 手势密码验证的逻辑

2.1、 首先先判断用户是否已经设置过手势密码

是否已经设置过手势密码

2.2、 如果已经设置过手势密码,则进入流程一

已经设置了手势密码

2.3、 用户没有设置手势密码,则进入流程二,进行设置手势密码

进行手势密码设置

2.3、 流程三为修改手势密码

修改手势密码

2.4、 最后为总的流程图

总的流程图

3. 下面为手势密码实现的代码

3.1、 iOS客户端要满足上面几种复杂的需求,需要做很多种情况下的判断

最终分为5种情况来判断:

1)当手势密码为空的时候,第一次录入手势密码
1.1)再次确定录入的手势密码,两次相同则成功录入
1.2)两次录入的密码不一致,录入失败
2)已经录入过了手势密码,输入的手势密码错误
3)已经录入过了手势密码,输入的手势密码正确

我们只需要做以上5种情况的判断,即可以完成上面流程图中的所有逻辑判断

3.2、 实例代码

首先,需要创建手势密码的类,然后实现它的代理方法

-(void)guestureLock:(DBGuestureLock *)lock didSetPassword:(NSString *)password { //NSLog(@"Password set: %@", password); if (lock.firstTimeSetupPassword == nil) { lock.firstTimeSetupPassword = password; NSLog(@"varify your password"); NSLog(@"当前的密码:%@", [DBGuestureLock getGuestureLockPassword]); self.label.text = @"请再次输入你的手势密码:"; } }
-(void)guestureLock:(DBGuestureLock *)lock didGetCorrectPswd:(NSString *)password { //NSLog(@"Password correct: %@", password); if (lock.firstTimeSetupPassword && ![lock.firstTimeSetupPassword isEqualToString:DBFirstTimeSetupPassword]) { lock.firstTimeSetupPassword = DBFirstTimeSetupPassword; NSLog(@"已经录入手势密码!"); self.label.text = @"已经录入手势密码!"; } else { NSLog(@"密码正确"); self.label.text = @"密码正确!"; } }
-(void)guestureLock:(DBGuestureLock *)lock didGetIncorrectPswd:(NSString *)password { //NSLog(@"Password incorrect: %@", password); NSLog(@"%@ %@", lock.firstTimeSetupPassword, DBFirstTimeSetupPassword); if (![lock.firstTimeSetupPassword isEqualToString:DBFirstTimeSetupPassword]) { NSLog(@"Error: 两次密码不一致!"); self.label.text = @"两次密码不一致!"; } else { NSLog(@"密码错误!"); self.label.text = @"密码错误!"; } }

完整的代码,稍后会上传上来。

上一篇下一篇

猜你喜欢

热点阅读