verify method
Verifies a code against a challengeId
.
The verification code
is provided by the user by entering a code seen in their authenticator app.
Implementation
Future<AuthMFAVerifyResponse> verify({
required String factorId,
required String challengeId,
required String code,
}) async {
final session = _client.currentSession;
final data = await _fetch.request(
'${_client._url}/factors/$factorId/verify',
RequestMethodType.post,
options: GotrueRequestOptions(
headers: _client._headers,
body: {
'challenge_id': challengeId,
'code': code,
},
jwt: session?.accessToken,
),
);
final response = AuthMFAVerifyResponse.fromJson(data);
_client._saveSession(
Session(
accessToken: response.accessToken,
tokenType: response.tokenType,
user: response.user,
expiresIn: response.expiresIn.inSeconds,
refreshToken: response.refreshToken,
),
);
_client.notifyAllSubscribers(AuthChangeEvent.mfaChallengeVerified);
return response;
}