diff --git a/openid_connect.module b/openid_connect.module
index ec7a465..c835afe 100644
--- a/openid_connect.module
+++ b/openid_connect.module
@@ -438,27 +438,27 @@ function openid_connect_complete_authorization($client, array $tokens, &$destina
 
   /* @var \Drupal\user\UserInterface $account */
   $account = $authmap->userLoadBySub($sub, $client->getPluginId());
-  $results = \Drupal::moduleHandler()->invokeAll('openid_connect_pre_authorize', [
-    $tokens, $account, $userinfo, $client->getPluginId(), $sub,
-  ]);
 
-  // Deny access if any module returns FALSE.
-  if (in_array(FALSE, $results, TRUE)) {
-    $message = 'Login denied for @email via pre-authorize hook.';
-    $variables = ['@email' => $userinfo['email']];
-    $logger->error($message, $variables);
-    return FALSE;
-  }
-
-  // If any module returns an account, set local $account to that.
-  foreach ($results as $result) {
-    if ($result instanceof UserInterface) {
-      $account = $result;
-      break;
+  if ($account) {
+    $results = \Drupal::moduleHandler()->invokeAll('openid_connect_pre_authorize', [
+      $tokens, $account, $userinfo, $client->getPluginId(), $sub,
+    ]);
+
+    // Deny access if any module returns FALSE.
+    if (in_array(FALSE, $results, TRUE)) {
+      $message = 'Login denied for @email via pre-authorize hook.';
+      $variables = ['@email' => $userinfo['email']];
+      $logger->error($message, $variables);
+      return FALSE;
     }
-  }
 
-  if ($account) {
+    // If any module returns an account, set local $account to that.
+    foreach ($results as $result) {
+      if ($result instanceof UserInterface) {
+        $account = $result;
+        break;
+      }
+    }
     // An existing account was found. Save user claims.
     if (\Drupal::config('openid_connect.settings')->get('always_save_userinfo')) {
       openid_connect_save_userinfo($account, $userinfo);
