verifyCode static method
Verifies a given TOTP code against a secret key.
secretKey
: Secret key, generated by createSecrettotpCode
: TOTP code from Appinterval
: Time interval in seconds, default is 30 seconds It will return true if code is correct, otherwise false
Implementation
static bool verifyCode(
{required String secretKey,
required String totpCode,
int interval = 30}) {
secretKey = secretKey.replaceAll(RegExp(r'[ -]'), '');
int tolerance = 1;
for (var i = -tolerance; i <= tolerance; i++) {
final time =
(DateTime.now().millisecondsSinceEpoch ~/ 1000 + i * interval) ~/
interval;
final generatedCode = _generateCodeAtTime(secretKey, time);
if (generatedCode == totpCode) return true;
}
return false;
}