0
在我正在处理的应用程序中,我让用户使用密码作为其TouchID的备份。显然,出于安全原因,这个密码应该有某种形式的类似于iPhone锁定屏幕的“超时”。错误密码的iOS超时
什么是最好的方法来实现这一目标?
我最初的想法是保存用户最后一次不正确的尝试,并进行检查,看看它是否超过当前日期的x分钟数。
我认为这将在实践中起作用,然而将它绑定到系统时钟绝对不是最安全的方法。
任何有关此事的帮助将不胜感激。
在我正在处理的应用程序中,我让用户使用密码作为其TouchID的备份。显然,出于安全原因,这个密码应该有某种形式的类似于iPhone锁定屏幕的“超时”。错误密码的iOS超时
什么是最好的方法来实现这一目标?
我最初的想法是保存用户最后一次不正确的尝试,并进行检查,看看它是否超过当前日期的x分钟数。
我认为这将在实践中起作用,然而将它绑定到系统时钟绝对不是最安全的方法。
任何有关此事的帮助将不胜感激。
我已经在几个应用程序中实现了这种形式。我通常所做的就是使用一个计时器,该计时器在用户与应用程序交互时开始(并且如果存在则取消前一个计时器)。当时间用完时,则运行超时方法。
是这样的:
- (void)pressedButton:(UIButton *)button {
// record button press
[self scheduleInteractionTimer];
}
- (void)scheduleInteractionTimer {
if (_timeoutTimer) {
[_timeoutTimer invalidate];
}
_timeoutTimer = [NSTimer timerWithTimeInterval:timeoutTime target:self selector:@selector(timeoutTripped) userInfo:nil repeats:NO];
_timeoutTimer.tolerance = 5.0; // optional
[[NSRunLoop mainRunLoop] addTimer:_timeoutTimer forMode:NSRunLoopCommonModes];
}
- (void)timeoutTripped {
// whatever should be done for a timeout...
}
你肯定可以配合-scheduleInteractionTimer不正确的反应或其他任何你想。
编辑:我也建议解除应用程序进入后台时的密码视图。
干杯
安东尼