function miniorange_2fa_inline_registration::handle_page_otp_validate_submit in Google Authenticator / 2 Factor Authentication - 2FA 8.2
Same name and namespace in other branches
- 8 src/Form/miniorange_2fa_inline_registration.php \Drupal\miniorange_2fa\form\miniorange_2fa_inline_registration::handle_page_otp_validate_submit()
File
- src/
Form/ miniorange_2fa_inline_registration.php, line 1501 - Page 1: Select Email address. Page 2: Verify OTP. Page 3: Select Auth Method. Page 4: Configure Auth Method. Page 5: Configure KBA.
Class
- miniorange_2fa_inline_registration
- @file Page 1: Select Email address. Page 2: Verify OTP. Page 3: Select Auth Method. Page 4: Configure Auth Method. Page 5: Configure KBA.
Namespace
Drupal\miniorange_2fa\formCode
function handle_page_otp_validate_submit(array $form, FormStateInterface $form_state) {
$storage = $form_state
->getStorage();
$input = $form_state
->getUserInput();
$otp_code = $input['mo_auth_otpoversms_code'];
$form_state
->setRebuild();
$challenge_response = $storage[0]['user_challenge_response'];
$method = $storage['page_three_values']['mo_auth_method'];
$email = $storage['page_one_values']['mo_auth_user_email'];
$customer = new MiniorangeCustomerProfile();
$hardware_token = AuthenticationType::$HARDWARE_TOKEN['code'];
$auth_api_handler = new AuthenticationAPIHandler($customer
->getCustomerID(), $customer
->getAPIKey());
if ($method == $hardware_token) {
$miniorange_user = new MiniorangeUser($customer
->getCustomerID(), $email, NULL, NULL, $hardware_token);
$validate_response = $auth_api_handler
->validate($miniorange_user, null, $otp_code, null);
}
else {
$validate_response = $this
->validate_otp_for_user($challenge_response->txId, $otp_code);
}
if ($validate_response->status == 'SUCCESS') {
$page = [
'page_five' => TRUE,
'page_otp_validate_values' => $form_state
->getValues(),
'page_four_values' => $storage['page_four_values'],
'page_three_values' => $storage['page_three_values'],
'page_two_values' => $storage['page_two_values'],
'page_one_values' => $storage['page_one_values'],
];
$_SESSION['success_status'] = TRUE;
$form_state
->setStorage($page);
return;
}
elseif ($validate_response->status == 'FAILED') {
//Retain All the values
$page = [
'page_otp_validate' => TRUE,
'page_four_values' => $storage['page_four_values'],
[
'user_challenge_response' => $storage[0]['user_challenge_response'],
],
'page_three_values' => $storage['page_three_values'],
'page_two_values' => $storage['page_two_values'],
'page_one_values' => $storage['page_one_values'],
];
$_SESSION['message'] = 'INVALID OTP';
$_SESSION['success_status'] = FALSE;
$form_state
->setStorage($page);
$form_state
->setRebuild();
return;
}
}