private function verifyOtpWithWindow($otp, $timestamp, $window) { $window = abs($window); for ($i = -$window; $i <= $window; ++$i) { if ($this->compareOTP($this->at($i * $this->getPeriod() + $timestamp), $otp)) { return true; } } return false; }