Implemented cooldown before User is able to resend confirmation code for 2fa

This commit is contained in:
Arseni
2025-12-23 14:56:47 +03:00
parent 1ed76f7243
commit ec54579921
6 changed files with 196 additions and 9 deletions

View File

@@ -5,6 +5,7 @@ import 'package:pshared/api/responses/login.dart';
import 'package:pshared/data/mapper/session_identifier.dart';
import 'package:pshared/models/account/account.dart';
import 'package:pshared/data/mapper/account/account.dart';
import 'package:pshared/api/responses/confirmation.dart';
import 'package:pshared/models/auth/pending_login.dart';
import 'package:pshared/service/authorization/storage.dart';
import 'package:pshared/service/services.dart';
@@ -15,24 +16,26 @@ class VerificationService {
static final _logger = Logger('service.verification');
static const String _objectType = Services.confirmations;
static Future<void> requestLoginCode(PendingLogin pending, {String? destination}) async {
static Future<ConfirmationResponse> requestLoginCode(PendingLogin pending, {String? destination}) async {
_logger.fine('Requesting login confirmation code');
await getPOSTResponse(
final response = await getPOSTResponse(
_objectType,
'',
LoginConfirmationRequest(destination: destination).toJson(),
authToken: pending.pendingToken.token,
);
return ConfirmationResponse.fromJson(response);
}
static Future<void> resendLoginCode(PendingLogin pending, {String? destination}) async {
static Future<ConfirmationResponse> resendLoginCode(PendingLogin pending, {String? destination}) async {
_logger.fine('Resending login confirmation code');
await getPOSTResponse(
final response = await getPOSTResponse(
_objectType,
'/resend',
LoginConfirmationRequest(destination: destination).toJson(),
authToken: pending.pendingToken.token,
);
return ConfirmationResponse.fromJson(response);
}
static Future<Account> confirmLoginCode({