loginPassword method
Implementation
Future<dynamic> loginPassword(String email, String password, BuildContext context) async {
try {
_dio.options.headers['content-Type'] = 'application/json';
var response = await _dio
.post('$baseUrl/frontegg/identity/resources/auth/v1/user', data: {"email": email, "password": password});
final data = response.data;
final SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('emailForRecover', email);
if (data['mfaRequired'] != null && data['mfaRequired']) {
prefs.setString('mfaToken', data['mfaToken']);
final verified = await Navigator.push(context, MaterialPageRoute(builder: (context) => const TwoFactor()));
if (verified == null) {
return false;
}
if (verified == true) {
return await getUserInfo();
}
} else {
prefs.setString('accessToken', data['accessToken']);
prefs.setString('expires', data['expires']);
prefs.setInt('expiresIn', data['expiresIn']);
prefs.setString('refreshToken', data['refreshToken']);
return await getUserInfo();
}
} catch (e) {
if (e is DioError && e.response != null) {
throw e.response!.data['errors'][0];
}
throw tr('invalid_authentication');
}
}