diff --git a/super_login.module b/super_login.module
index 1507166..378241e 100755
--- a/super_login.module
+++ b/super_login.module
@@ -1,5 +1,6 @@
 <?php
 
+use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Url;
 use Drupal\Core\user\Access;
 
@@ -122,30 +123,29 @@ function super_login_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $fo
  *
 */
 function super_login_user_login_validate(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
-  $config = \Drupal::config('super_login.settings');
-  
-  if ($config->get('super_login.login_type') == 0){
-    if ($form_state->getValue('name')){
-      if ($name = \Drupal::database()->query("SELECT name FROM {users_field_data} WHERE LOWER(mail) = LOWER(:name)", array(
-        ':name' => $form_state->getValue('name'),
-      ))->fetchField()) {
-        $form_state->setValue('name', array($name));
-      }
+  $login_type = (int) \Drupal::config('super_login.settings')
+    ->get('super_login.login_type');
+  $username = Unicode::strtolower(trim($form_state->getValue('name')));
+
+  if (in_array($login_type, [0, 2]) && !empty($username)) {
+    $user_storage = \Drupal::entityTypeManager()->getStorage('user');
+    $user_ids = $user_storage
+      ->getQuery()
+      ->condition('mail', $username)
+      ->condition('status', 1)
+      ->range(0, 1)
+      ->execute();
+
+    if (
+      !empty($user_ids) &&
+      ($user = $user_storage->load(reset($user_ids)))
+    ) {
+      $form_state->setValue('name', array($user->getUsername()));
     }
-  }  
-  
-  if ($config->get('super_login.login_type') == 2){  
-    if ($form_state->getValue('name')){
-      if ($name = \Drupal::database()->query("SELECT name FROM {users_field_data} WHERE LOWER(mail) = LOWER(:name)", array(
-        ':name' => $form_state->getValue('name'),
-      ))->fetchField()) {
-        $form_state->setValue('name', array($name));
-      }else{
-        $form_state->setValue('name', array('-'));
-      }
+    elseif ($login_type === 2) {
+      $form_state->setValue('name', array('-'));
     }
   }
-  
 }
 
 /**
